正则详细教程系列可以看此链接的文章哦

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 不一样, $ 是匹配行结尾的任意字符,可以包括汉字