概念
- 正则(regex):
- 元字符+普通字符@H_403_6@
- 字符组(Character Class): @H_403_6@
- 字符组元字符(Character-class Metacharacter):
[^0-5a-z]
匹配大小写[Ss]qr
@H_403_6@- 匹配HTML TAG
<H[1-5]>
@H_403_6@ - ^不包含@H_403_6@
[a|b]
和(a|b)不同,前者|只是一个字符,后者则是”或”@H_403_6@
- 单词分界(Word Boundaries)元字符序列(Metasequences): @H_403_6@
- 括号及反向引用(Parentheses and Backreferences): @H_403_6@
- 环视(lookaround):
环视和\b ^ $等一样只是匹配特定的位置。- 肯定顺序环视(lookahead):
(?=h2ero)love you
从左至右@H_403_6@
- 肯定逆序环视:
(?<=h2ero)lover you
从右至左分隔123456789为123.456.789,可以是
preg_replace('/(?<=\d)(?=(\d\d\d)+$)/','.','123456789');
也可以是preg_replace('/(?=\d)(?<=(\d\d\d)+$)/','123456789');
两个环视的先后顺序不重要。只要在相同位置匹配即可。
- 否定顺序环视:
(?!h2ero)love you
从左至右@H_403_6@
- 否定逆序环视:
(?<!h2ero)lover you
从右至左@H_403_6@
- 肯定顺序环视(lookahead):
拾遗
PHP中的正则
- 单引号转移\表示一个\所以\\才表示一个\@H_403_6@
- 模式修饰符
- i 忽略大小写@H_403_6@
- m 增强的行锚模式@H_403_6@
- s 点号通配模式@H_403_6@
- x 宽松排列和注释模式@H_403_6@
- u 以UTF-8读取正则表达式和目标字符@H_403_6@
- X 启用PCRE额外功能@H_403_6@
- e 将replacement作为PHP代码
$metric=preg_replace(‘/(-?\d+(?:.\d+)?)/e’,’floor(($1-32)*5/9+0.5)’,$subject);
- S 启用PCRE的study优化尝试@H_403_6@
- U 交换和?的匹配优先含义@H_403_6@
- A 将整个匹配尝试锚定在起始位置@H_403_6@
- D $只能匹配锚定在起始位置@H_403_6@
- preg_match中的RPEG_OFFSET_CAPTURE由于获取每次匹配的偏移量。preg_match_all中的PREG_SET_ORDER每次匹配集中保存。如果要设置多个参数用|连接。@H_403_6@