全网最易懂的正则表达式教程(5)- 断言
正则详细教程系列可以看此链接的文章哦
https://www.cnblogs.com/poloyy/category/1796055.html
特殊单字符
元字符 | 说明 |
---|---|
\b | 匹配单词的开始或结束 |
\B | 和 \b 相反 |
^ | 匹配字符串(行)的开始 |
$ | 匹配字符串(行)的结束 |
\b 的栗子
first
匹配文本 | poloyy |
正则表达式 | \bpoloyy\b |
匹配数量 | 1 |
匹配结果 | poloyy |
second
匹配文本 | poloyy |
正则表达式 | \bpo |
匹配数量 | 1 |
匹配结果 | po |
third
匹配文本 | poloyy1 |
正则表达式 | \bpo....\d\b |
匹配数量 | 1 |
匹配结果 | poloyy1 |
four
匹配文本 | y1菠萝_A |
正则表达式 | \b\w. |
匹配数量 | 2 |
匹配结果 | y1、_A |
总结
- \b 其实并不匹配任何字符,它只匹配一个位置(开头,结尾)
- 相当于单词的开头或结尾,有点类似 ^ 、 $
- 单词:连起来的字母、数字、下划线,但不包括汉字(如 four 的栗子 ),一般可以用元字符 \w+ 来表示
再来看看一个拓展的栗子
重点:在精确匹配某个单词时,我们使用 \b\w+\b 就可以实现了
行的开始或结束
和单词的边界类似,在正则中还有文本每行的开始和结束,如果要求匹配的内容要出现在一行文本开头或结尾,就可以使用 ^ 和 $ 来进行位置界定
怎么才算一行?
在结尾处有换行符
要注意:在计算机中,回车 \r 和换行 \n 其实是两个概念,并且在不同的平台系统上,换行符的表示也是不一样的
不同系统的换行符
系统 | 换行符 |
---|---|
Windows | \r\n |
Linux | \n |
macOS | \n |
^ 的栗子
first
匹配文本 | 菠萝_A |
正则表达式 | ^菠. |
匹配数量 | 1 |
匹配结果 | 菠萝 |
second
匹配文本 | _123 |
正则表达式 | ^_\d |
匹配数量 | 1 |
匹配结果 | _1 |
总结
和 \b 不一样, ^ 是匹配行开始的任意字符,可以包括汉字
$ 的栗子
first
匹配文本 | 菠2萝_ |
正则表达式 | \d._$ |
匹配数量 | 1 |
匹配结果 | 2萝_ |
second
匹配文本 | 123菠萝 |
正则表达式 | \b\w\d\d菠萝$ |
匹配数量 | 1 |
匹配结果 | 123菠萝 |
总结
和 \b 不一样, $ 是匹配行结尾的任意字符,可以包括汉字