0

0

关于正则表达式中的认识

一个新手

一个新手

发布时间:2017-10-20 11:11:24

|

7716人浏览过

|

来源于php中文网

原创

\b用来设置单词界限。匹配单词(由字母数字或下划线组成的)的开始或结束(匹配开始时,单词之前不能有\w;匹配结束时,单词之后不能有\w)。写在表达式某个字符或字符串之前,表示此字符或字符串之前不能有\w对应的字符;写在字符后面,表示此字符之后不能有\w对应的字符。 所以\b可以只有一个放在字符前面或后面,也可以有2个(表示字符前后都不能有\w对应的字符)。

先看正确的情况

 

图1
注:1.如果\b描述的不是由字母数字或下划线组成的单词,则表达式定义错误,永远不会有字符串与其匹配。如图2:

图2

2.目标字符串中匹配的只是单独的单词,不包括前后的间隔(如空格,\W等),图1中匹配的“Russell”字符两边的空格,没有计入(测试工具显示没有蓝色背景填充)。
目的:匹配独立的单词或字符串的部分,业务规则是查找所有有单词“Russell”独立出现的地方。如表达式\bRussell\b  则Russell123abc不匹配,因为Russell后不应该跟字母或数字或下划线,Russell 123abc,Russell@123abc都匹配。
3.特殊情况。自相矛盾的表达式定义。

关于正则表达式的语法课件
关于正则表达式的语法课件

关于正则表达式的语法课件

下载


\b只是用来限定由字母数字或下划线构成的单词,
如果表达式\b之后还有其他表达式,则表达式\b之后的表达式一定不能是\w或者不能是\w中的内容,因为
例子,表达式\bhi\bnihao,意思是单词hi前后不能有\w的内容,并且要求目标字符串有hi,并且hi之后紧跟"nihao"字符。即这个表达式的定义就是自相矛盾的。
因为:根据\b的定义,\b只是确保下列情况,目标字符串才能匹配:\b前后的字符不能有\w,所以非\w(或者说\W)的字符在\b前后会匹配上。注意,这里要求要想匹配上一定是非\w的字符,所以正则的潜台词已经说了:匹配上\b的字符身边一定就是非\w字符了,所以要在\b表达式之后再加上非\w的其他表达式,才有可能让目标字符串匹配上。
所以类似这样的正则永远不会被匹配:\bhi\bnihao     目标字符串hinihao      hi nihao      hi*nihao        hi @#$nihao   。。。
因为\bhi\b要求了hi前后不能有字母数字或下划线的字符,并且hi之后紧接着要是nihao字符串。所以hi前后这能是空格!@#¥%等特殊字符,而表达式中定义紧接着hi之后的是nihao,所以永远都不会有目标字符串和此正则匹配。

办法:在定义正则时,就把这个非\w用正则考虑进去(写进表达式中),修改正则为\bhi\b\W+nihao 则有
hinihao
hi nihao
hi@nihao
hi!@#$ nihao

后三个都匹配

相关专题

更多
PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

11

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

3

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

4

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

13

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

93

2026.01.18

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

112

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

155

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 4.7万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.9万人学习

AngularJS教程
AngularJS教程

共24课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号