推荐
规范
- 优先考虑 懒惰模式
?
正则表达式有一条比
懒惰/贪婪规则优先级更高的规则:最先开始的匹配拥有最高的优先权。 如a.+?c-> ababc 将匹配 整个字符串 ababc。
- 优先考虑 非捕获组
(?:)
学习
- 某个字符后的数量限定符用来限定前面这个字符允许出现的个数(不是
再出现个数),不加数量限定则代表出现一次且仅出现一次。 后向引用用于重复搜索前面某个分组匹配的文本,\num代表重复内容;+,*,{num}等重复匹配只是重复语法。
语法
-
符号优先权
优先权 符号 最高 \高 ()、(?:)、(?=)、[]中 *、+、?、{n}、{n,}、{n,m}低 ^、$、中介字符次最低 串接,即相邻字符连接在一起最低 | -
简写字符集
字符 说明 \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]\d 匹配一个数字字符 \D 匹配一个非数字字符 \w 匹配包括下划线的任何单词字符。等价于 [A-Za-z0-9_]\W 匹配任何非单词字符。等价于 [^A-Za-z0-9_]\b 匹配一个单词边界,也就是指单词和空格间的位置 \B 匹配非单词边界 -
零宽断言
字符 说明 (?=exp) 断言自身出现的位置的后面能匹配表达式 exp。匹配 exp 前面的位置 (?<=exp) 断言自身出现的位置的前面能匹配表达式 exp。匹配 exp 后面的位置 (?!exp) 断言此位置的后面不能匹配表达式 exp。匹配后面跟的不是 exp 的位置 (?<!exp) 断言此位置的前面不能匹配表达式 exp。匹配前面不是 exp 的位置