PHP正则表达式
程序员文章站
2022-03-12 21:51:56
...
PHP正则表达式
构成:
元字符:具有特殊含义的字符,如 * ?
文本字符:普通的文本
1、行定位符(^和$)
[说明]
描述字符串的边界,^表示行的开始,$表示行的结尾
[例子]
^tm
匹配字串 tm 的开始位置是行头,如 tm equal Ta Men 就可以匹配
而 Ta Men equal tm 则不匹配,但如果使用
tm$
则后者可以匹配而前者不能匹配。如果要匹配字串可以出现在字符串的任意部分,
可以直接写成
tm
这样两个字符串就都可以匹配了
2、单词定界符(\b、\B)
继续上面实例,使用tm可以匹配在字符串中出现的任何位置。那么类似html\utmost中的tm
也会被查找出来。但现在需要匹配的是单词tm,而不是单词的一部分。这时可以使用单词分界符\b,
表示要查找的字符串为一个完整的单词,如:
/btm/b
还有一个大写的\B,意思和\b相反。它匹配的字串不能是一个完整的单词,而是其他单词或字串的
一部分。如:
\Btm\B
3、字符类([])
正则表达式是区分大小写的,如果要忽略大小写可使用方括号表达式 []。只要匹配的字符
出现在方括号内,则匹配成功。但要注意:一个方括号只能匹配一个字符。
例如,要匹配的字串 tm 不区分大小写,那么应该这样写:
[Tt][Mm]
4、选择字符(|)
还有一种方法可以实现上面的匹配模式,就是使用选择字符(|)
该字符可以理解为“或”,如上例可以写成:
(T|t)(M|m)
该表达式的意思是以字母T或t开头,后面接一个字母M或m。
[说明]
使用 [] 和 使用 | 的区别在于:
[]只能匹配单个字符,而 | 可以匹配任意长度的字串,如果不怕麻烦,上例可以写为
TM|tm|Tm|tM
5、连字符(-)
变量的命名规则是只能以字母和下划线开头。但这样一来,如果要使用正则表达式来匹配变量名的
第一个字母,要写为:
[a,b,c,d...A,B,C,D...]
这无疑是非常麻烦的,正则表达式提供了 - 来解决这个问题,连字符可以表示字符的范围,则
上例可以写为:
[a-zA-Z]
6、排除字符(^)
上面的例子是匹配符合命名规则的变量。现在反过来,匹配不符合命名规则的变量,正则表达式
提供了 ^ 字符,这个元素在 第1点 出现过,表示行的开始。而这里将会放到方括号中,表示排除的意思。
例如:
[^a-zA-Z]
该表达式匹配的就是不以字母和下划线开头的变量名
7、限定符 (? * + {n,m})
写不下去了。我直接给截图了,一个个敲好浪费时间 >_<
关于怎么截长图我我一篇文章写了,大家可以参考下,loading...
[^a-zA-Z]
该表达式匹配的就是不以字母和下划线开头的变量名
话说这是不是写错了。
上一篇: PHP学习--正则表达式
下一篇: 多模式匹配算法---AC自动机