正则表达式的 20 个实用技巧(精选)
最容易忘的几点
- 用
\b匹配单词边界,避免「cat」误中「category」。 - 默认是贪婪匹配,加
?变懒惰:a.*?b只吃到第一个 b。 - 用「字符组取反」
[^"]*比.*更安全,不会跨引号吞掉内容。
一个常见陷阱
提取引号内文本时,.* 会越过多个引号:
"([^"]*)" # 正确:只取当前这一对引号里的内容
性能
灾难性回溯来自嵌套量词,例如 (a+)+。写正则时尽量避免「量词套量词」。
\b 匹配单词边界,避免「cat」误中「category」。? 变懒惰:a.*?b 只吃到第一个 b。[^"]* 比 .* 更安全,不会跨引号吞掉内容。提取引号内文本时,.* 会越过多个引号:
"([^"]*)" # 正确:只取当前这一对引号里的内容
灾难性回溯来自嵌套量词,例如 (a+)+。写正则时尽量避免「量词套量词」。
评论(0)