【正则表达式】中的“\b“

正则表达式是一种用于匹配字符串的强大工具,它可以用于各种编程语言中,可以用来在文本中查找、替换或验证符合某种规则的内容。

正则表达式中有很多特殊的符号,称为元字符 ,它们有着特殊的含义和作用 。其中,"\b" 是其中一个比较常用的元字符,它表示单词边界

什么是单词边界?

单词边界是指一个单词的开头或结尾,或者一个单词和一个非单词字符之间的位置 。单词字符通常指字母、数字和下划线,非单词字符则是指除此之外的所有字符。例如,下面的句子中,每个单词的前后都有一个单词边界:

复制代码
This is a sentence.

"\b" 的使用

使用"\b"可以方便地匹配一个完整的单词,而不是单词的一部分。

"\b" 可以用于正则表达式中,以表示一个单词的边界。例如,如果要匹配"cat"这个单词,而不是"catch"或"concatenate"中的"cat",可以使用正则表达式"\bcat\b"。这样,只有当"cat"前后都是非单词字符或者字符串的开头或结尾时,才会匹配成功。

需要注意的是,"\b"不匹配任何实际的字符,只匹配一个位置,因此在匹配时并不会包括 "\b" 所在的位置。

下面是一些 "\b" 的使用示例:

  • 匹配单词 "hello":\bhello\b
  • 匹配单词 "world":\bworld\b
  • 匹配单词开头:\b\w
  • 匹配单词结尾:\w\b

拓展

深入理解单词边界

单词边界是指一个单词的开头或结尾,或者一个单词和一个非单词字符之间的位置。这句话很关键!

对于字符串"leve == @com.example.MyEnum@FIRST",使用正则表达式\b@com.example.MyEnum是匹配不到的。因为@com.example.MyEnum"的第一个字符('@')是非单词字符,而它前面的字符(空格)也是非单词字符。

如果上面的字符串是"leve == s@com.example.MyEnum@FIRST",这个正则表达式就匹配不到了。因为它前面的字符('s')是单词字符。

关于\B

\B\b相反,匹配非单词边界 。例如,er\B能匹配"verb"中的"er",但不能匹配"never"中的"er"

总结

"\b" 是正则表达式中的一个元字符,用于表示单词边界。掌握了 "\b" 的使用,可以更加精确地匹配字符串,避免出现不必要的匹配。

相关推荐
电话交换机IPPBX-3CX8 分钟前
电话交换机IPPBX-3CX的呼叫记录导出
运维·服务器·网络
前端互助会9 分钟前
Live2D形象展示与文本语音播报:打造生动交互体验的完整实现
前端·vue.js·microsoft·交互
C-DHEnry2 小时前
Linux 不小心挂载错磁盘导致无法启动系统咋办
linux·运维·服务器·雨云
努力的小郑2 小时前
今晚Cloudflare一哆嗦,我的加班计划全泡汤
前端·后端·程序员
JosieBook2 小时前
【若依框架】若依前后端分离项目怎么部署到服务器?
运维·服务器
f***68602 小时前
【Sql Server】sql server 2019设置远程访问,外网服务器需要设置好安全组入方向规则
运维·服务器·安全
q***64973 小时前
头歌答案--爬虫实战
java·前端·爬虫
凌波粒3 小时前
SpringMVC基础教程(4)--Ajax/拦截器/文件上传和下载
java·前端·spring·ajax
DeadPool loves Star3 小时前
利用笔记本与SSH转发给服务器上的虚拟机通网
运维·服务器·ssh
液态不合群3 小时前
DDD驱动低代码开发:从业务流程到领域模型的全链路设计
前端·低代码·架构·ddd