正则表达式
-
正则表达式
正则表达式常用操作符
简写 描述 . 匹配单个字符 [ ] 匹配方括号内的字符 [^] 匹配除了方括号内的任意字符 * 匹配>=0个重复在*号前的字符 + 匹配>=1个重复的+号前的字符 ? 标记?之前的字符为可选 | 或运算符 \ 转义字符 ^ 从开始行开始匹配 $ 从末端开始匹配 {m} 扩展前一个字符m次 {m,n} 扩展前一个字母m至n次(含n) ( ) 分组标记,内部只能使用|分隔 \d 匹配数字,等价于[0-9] \D 匹配非数字:[^\d] \w 匹配所有字母数字,等价于[A-Za-z0-9] \W 匹配所有非字母数字,即符号,等同于:[^\w] \s 匹配所有空格字符,等同于:[\t\n\f\r\p{Z}] \S 匹配所有非空个字符:[^\s] \f 匹配一个换页符 \n 匹配一个换行符 \r 匹配一个回车符 \t 匹配一个制表符 \v 匹配一个垂直制表符 \p 匹配CR/LF(等同于\r\n),用来匹配DOS行终止符 -
零宽度断言
符号 描述 ?= 正先行断言-存在(例: The(?=\scat)
=> The cat sat on the mat.)* 个人理解:A(?=B) 即判断A的后面为B,则成功匹配 ?! 负先行断言-排除(例: [T|t]he(?!\scat)
=> The cat sat on the mat.)* 个人理解:A(?!B) 即判断A的后面不为B,则成功匹配 ?<= 正后发断言-存在(例: (?<=cat\s)(sat)
=> The cat sat on the mat.)* 个人理解:(?<=A)(B) 即判断A后面为B,则成功匹配 ?<! 负后发断言-排除(例: (?<![T|t]he\s)(cat)
=> The cat sat on cat)* 个人理解:(?<!A)(B) 即查找A的后面不为B,则成功匹配 -
标志
标志 描述 i 忽略大小写 g 全局搜索 m 多行修饰符:锚点元字符 ^
$
工作范围的起始