1. 正则元字符
2. 贪婪与非贪婪模式
元字符 | 同义表示方法 | 示例 |
---|---|---|
* | {0,} | ab* 可以匹配 a 或 abb |
+ | {1,} | ab+ 可以匹配 ab 或 abbb,但不能匹配 a |
? | {0,1} | (+86-)?\d{11} 可以匹配 +86-13800138000 或 13800138000 |
贪婪模式,简单说就是尽可能进行 最长匹配。
非贪婪模式呢,则会尽可能进行 最短匹配。
在正则中,表示次数的量词 默认是贪婪的。
字符串 aaabb, 用 a* 正则来匹配,会得到 4 个匹配结果: [‘aaa’, ‘’, ‘’, ‘’]。 因为匹配不上都会得到一个空字符串。
如何将贪婪模式变成非贪婪模式呢?可以在量词后面加上英文的问号 (?)。
正则 a*?。此时的匹配结果如下:[’’, ‘a’, ‘’, ‘a’, ‘’, ‘a’, ‘’, ‘’, ‘’]
参考资料
https://zq99299.github.io/note-book/regular/