首推两个不错的正则工具:
1. ^单独使用时表示匹配字符串开始的位置,在[^abc]中使用时表示非。
2. 正则中的两种匹配模式:贪婪模式、非贪婪模式,可以使用?表示。
就应用意义而言,在匹配成功的前提下,贪婪模式表示尽可能匹配到多的字符串,非贪婪模式是做尽可能少的匹配。
匹配成功是非常必要的前提,https://blog.csdn.net/lxcnn/article/details/4756030介绍的非常清楚。
3. (pattern)、(?:pattern)、(?=pattern)、(?!pattern)、(?<=pattern)、(?<!pattern)
(?:pattern): 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。
(?=pattern): 正向肯定预查(look ahead positive assert),在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
(?!pattern): 正向否定预查(negative assert),在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。
(?<=pattern): 反向肯定预查。
(?<!pattern):反向否定预查。
4. \num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)\1' 匹配两个连续的相同字符。