断言分类边界断言和前后断言,边界不在匹配范围内。
字符 | 含义 |
---|---|
^ |
匹配输入的开头。如果多行模式设为 true,^ 在换行符后也能立即匹配。
^ 出现在组和范围开头时的含义与此不同
|
$ |
匹配输入的结束。如果多行模式设为 true,^ 在换行符前也能立即匹配。 |
\b |
1、匹配一个单词的边界,这是一个字的字符前后没有另一个字的字符位置, 例如在字母和空格之间。 需要注意的是匹配的单词边界不包括在匹配中。换句话说,匹配字边界的长度为零。 示例:
2、字符类中,匹配退格字符[\b] |
\B |
匹配非单词边界。这是上一个字符和下一个字符属于同一类型的位置: 要么两者都必须是单词,要么两者都必须是非单词,例如在两个字母之间或两个空格之间。 字符串的开头和结尾被视为非单词。与匹配的词边界相同,匹配的非词边界也不包含在匹配中。 |
字符 | 含义 |
---|---|
x(?=y) |
向前断言:x 被 y 跟随时匹配 x。例如, |
x(?!y) |
向前否定断言:x 没有被 y 紧随时匹配 x。 |
(?<=y)x |
向后断言:x 跟随 y 的情况下匹配 x。例如,对于/(?<=Jack)Sprat/, “Sprat”紧随“Jack”时才会得到匹配。对于/(?<=Jack|Tom)Sprat, “Sprat”在紧随“Jack”或“Tom”的情况下才会得到匹配。不过, 匹配结果中不包括“Jack”或“Tom”。 |
(?<!y)x |
向后否定断言:x 不跟随 y 时匹配 x。 |
边界断言用的还是比较多的,前后断言以前没有相关概念,需要留意,增加使用场景,从而熟练掌握