表达式的优化
化简量词:
.*
与(?:.)*
在逻辑上是相等的,但是前者速度要更快,引擎内部做了优化。尽量使用非捕获的括号
消除不必要的字符组:[.]与.在逻辑上是相等的,但是后者更快。
字符组优于多选结构 [abc] 优于 a|b|c
忽略优先还是匹配优先,具体情况具体分析。:同样情况下,匹配优先速度更快。
视情况使用起始锚点^ : .*除非罕见的情况,否则都加上^,如果开头匹配不了,那么其他地方也理应匹配不上。
从量词中提取必须的元素 :aa* 替代 a+ bbb{0,7} 替代 b{3,10}
提取多选结构开头的必须元素 :th(?:is|at) 替代 this|thiat
独立出起始锚点^ : ^(?:abc|123) 替代 ^abc|^123
将最有可能匹配的多选分支放到前头(先迈最好使的腿)
Last updated