正则表达式之字符边界

零宽与非零宽

非零宽字符:能够匹配字符的(特殊)字符。如:\d会匹配一个数字,\s会匹配空白字符
零宽字符:不匹配字符,只标记位置(具体含义见下文)

字符边界

表达式表示含义
^与字符串开始的地方匹配
$与字符串结束的地方匹配
\b匹配一个单词边界

这里写图片描述
上例表示:匹配以”a”作为字符串开始的位置

这里写图片描述
上例表示:匹配以”l”作为字符串结尾的位置

关于\b 的理解

初学者往往对\b感到很困惑,一方面是对\b作为位置标识的不习惯,另一方面是对\b所表示的含义不明确,很多教程给的解释也太书面,因此我认为有必要单独将其列出来进行一下说明。

\b匹配的位置:前面和后面的字符不全是\w(字母,数字,下划线,汉字)
反过来理解就是,如果\b的前面和后面都是\w,则不匹配

示例如下:
这里写图片描述
先不谈匹配的结果,很多人看到这里可能有这样的疑问,不是说\b匹配的是位置吗?怎么最后匹配的字符串呢?要注意,我们只是说\b匹配的是一个位置,而不是说apple也跟着匹配位置,以第一个匹配成功的黄色高亮显示的apple为例
这里写图片描述
此例中,\b表示的是apple和左边的空格之间的位置。

接下来分析为什么会有这样的匹配:
\b的后边是apple,属于\w,因为\b匹配的位置前后不能全是\w,所以\b之前就不能是\w了,因此只有apple(前边是空格)、apple11(前边是空格)、apple1(前边是空格)符合。

下面将\b放在apple后面进行测试:
这里写图片描述
结果请读者自己分析。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蝉沐风的码场

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值