继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

有关正则表达式的小知识点1

php小白兔秀秀
关注TA
已关注
手记 60
粉丝 37
获赞 648

正则表达式的基本语法:

界定符、原子、量词、边界控制、模式单元

界定符:

表示一个正则表达式的开始和结束。
界定符不是正则表达式的一部分。
//,##,{};都是界定符。
例如:/[0-9]/ 、 #[0-9]# 、 {[0-9]}

正则表达式的工具:

图片描述

原子:

可见原子:Unicode编码表中用键盘输出后肉眼可见的字符
例如:
标点;“_?.等等
英文字母数字 a-z,A-Z,0-9
汉字,日文,阿拉伯文等其他语言文字
∑,∈,∫,≈等数理化公式符号
其他可见符号

不可见原子:Unicode编码表中用键盘输出后肉眼不可见的字符
例如:
换行符\n
回车\r
制表符\t
空格
其他不可见符号

元字符

原子的筛选方式
| 匹配两个或者多个分支选择;
[] 匹配方括号中的任意一个原子
[^] 匹配除方括号中的原子之外的任意字符
原子的集合
. 匹配除换行符之外的任意字符
\d 匹配任意一个十进制的数字。即[0-9]
\D 匹配任意一个非十进制数字。即[^0-9]
\s 匹配一个不可见原子,即[\f\n\r\t\v]
\S 匹配一个可见原子,即[^\f\n\r\t\v]
\w 匹配任意一个数字、字母或下划线,即[0-9a-zA-Z]
\W 匹配任意一个非数字、字母或下划线,即[^0-9a-zA-Z]
量词:
{n} 表示其前面的原子恰好出现n次
{n,} 表示其前面的原子最少出现n次
{n,m} 表示其前面的原子最少出现n次,最多出现m次
* 匹配0次、1次或者多次其之前的原子,即{0,}
+ 匹配1次或者多次其之前的原子,即{1,}
? 匹配0次或者1次其之前的原子。即{0,1}

边界控制与模式单元
^ 匹配字符串开始的位置
$ 匹配字符串结尾的位置
() 匹配其中的整体为一个原子

修正模式

常见的修正模式:
U 懒惰匹配
i 忽略英文字母的大小写
X 忽略空白
S 让元字符’.’匹配包括换行符在内所有字符
e
懒惰匹配和贪婪匹配
//正则表达式的贪婪匹配和懒惰匹配

$pattern ='/imooc.+123/';
$subject = 'i love imooc__123123123123123';
$matches = array();
preg_match($pattern,$subject,$matches);
show($matches);

运行结果:图片描述默认是贪婪模式
懒惰匹配正则表达式$pattern = ‘/imooc.+123/U’;
运行结果:图片描述
忽略大小写i

$pattern ='/iMoOc.+123/i';
$subject = 'i love imooc__123123123123123';
$matches = array();
preg_match($pattern,$subject,$matches);
show($matches);

运行结果:图片描述
忽略空白符x

$pattern ='/i Mo  Oc.+123/ix';
$subject = 'i love imooc__123123123123123';
$matches = array();
preg_match($pattern,$subject,$matches);
show($matches);

运行结果:图片描述
**非空:.+
浮点数匹配:
\d+.\d{2}$
解释:\d 代表[0-9]数字

  • 代表1或者若干个数字
    . 代表的小数点
    \d{2} 代表连续两个小数点
    $ 结尾符
    手机号匹配:
    1(3|4|5|6|7|8)\d{9}
    E-mail匹配:
    ^\w+(.\w+)*@\w+(.\w+)+$
    URL的地址匹配:
    ^(https?://)?(\w+.)+[a-zA-Z]+$**
打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP