正则表达式
group
使用()来选择group
1 | .*aa(.*)cc |
忽略group
在()内使用?:
1 | .*aa(?:.*)cc |
更多忽略:
exp1(?=exp2):查找 exp2 前面的 exp1abc(?=\d+)匹配123abc123abcxyz,将匹配第一个abc,不会匹配第二abc
(?<=exp2)exp1:查找 exp2 后面的 exp1(?<=\d+)abc匹配123abcxyzabc123,将匹配第一个abc,不会匹配第二abc
exp1(?!exp2):查找后面不是 exp2 的 exp1abc(?!\d+)匹配123abc123abcxyz,将匹配第二个abc
(?<!exp2)exp1:查找前面不是 exp2 的 exp1(该特性某些浏览器可能不支持)(?<!\d+)abc匹配123abcxyzabc123,将匹配第二个abc
贪婪和非贪婪
表达式默认是贪婪模式,在表达式后面增加?进行非贪婪匹配
示例,假设对aaaabbbcc进行匹配
| 结果 | .*aa(.*)cc | 非贪婪.*?aa(.*)cc |
|---|---|---|
| group 1 | bbb | aabbb |
| 解释 | 第一个.*贪婪,匹配2个a | 第一个.*匹配0个a |