正则表达式Regex总结

一、PHP中的正则表达式

   正则表达式:正则表达式是一些规则,用于匹配一个或多个字符串中的模式

/^\d\d\d\d$/
^表示从字符串的开始处开始匹配;
\d表示数字;
$表示匹配到字符串的末尾;
所以,这个正则表达式表示,从字符串的头匹配到字符串的尾,字符串必须从头开始第一个字符是数字,第二个字符也是数字,第三第四个字符都是数字,并且第四个字符就是字符串的结尾。

简洁表示法:
/^\d{4}$/ 
\d{4}是4个数字的简写形式.{4}被称为量词,指出前面的\d应该出现多少次。
其他常用量词还有:
{min,max}:大括号里写两个数字,指示前面的字符或者元字符重复出现的范围
+:表示前面的字符或者元字符必须至少重复一次
?:表示前面的字符或者元字符出现1次或者根本不出现
*:表示前面的字符或者元字符必须出现1次或者多次或者根本不出现。
/^\d{3}-\d{4}(-\d{4})?$/
本例中(-\d{4})这个整体应用量词“?”,所以用括号把它们括起来。

上例中的\d被称为元字符,下面详细解释这些元字符:

  1. \d:表示一个数字,即0到9之间的任何数字
  2. \w:表示一个数字或者一个字母(大写或者小写)
  3. \s表示一个空格或者制表符或者换行符或者回车符
  4. ·:表示匹配除了换行符之外的任何字符。
  5. ^:表示从字符串开始处开始匹配,而不是从字符串的其他位置开始匹配
  6. $:表示匹配到字符串的结尾,和^结合使用来指定匹配的范围。

如果想匹配字符串中一个特定的字符,直接在正则表达式中写这个字符即可

/^700-800-123$/ 匹配 700-800-123

其实,一个正则表达式本质上只由两部分组成:字符类+量词,元字符只不过是特定字符类的简写形式,特定字符是只有一个元素的特殊字符类。

字符类本质就是一个字符集合。表示字符串中一个位置可以匹配字符类中任何一个元素(字符)。例如:

[0-2]表示一个数字范围,等价于[0,1,2]
/^[0-2]---\d$/ 就可以匹配 0---1 这种形式的字符串。 
[A-D]则会匹配 A或者B或者C或者D
我们同样可以取字符类相对于全部字符的补集。
[^b-f]表示可以匹配除了b到f之外的其他任何字符。
如果一个量词紧跟在一个字符类的后面,她就会应用到整个字符类。
如果你希望一个量词应用到连续的一组字符(但这些字符没有在一个字符类中),可以用小括号包围这些字符,指示它们应当归为一组
发布了156 篇原创文章 · 获赞 19 · 访问量 8939

猜你喜欢

转载自blog.csdn.net/weixin_43415644/article/details/89647806
今日推荐