正则表达式——位置匹配

一、单词边界

在实际中,我们有时需要查找特定的单词,而不想把包含在其它单词中的部分匹配出来,例如:
  匹配a
  这里假如我们要把句子中的a全部替换为an,进行匹配时,其他单词中的字母a也会进行匹配,因此我们需要用限定符\b指定单词边界。
  匹配单词a
  这里我们看到它只对单个单词a进行了匹配。
提示:\b只是匹配一个位置,这个位置位于一个能够构成单词的字符(\w)和一个不能用来构成单词的字符之间。如果要表明不匹配一个单词边界,则用\B。
  下面再举一个简单的例子:
  匹配-
  所写的文本中,第一个“ - ”两边没有空格,第二个两边都加了空格。

二、字符串边界

用来定义字符串边界的元字符有两个:一个定义字符串的开头^, 另一个定义字符串的结尾$。例子如下:
在这里插入图片描述
在这里插入图片描述

例如$可以用来检查html文件,</html>标签后面不应该有其他内容。
注意:^出现在[和]之间时,代表求非,且必须紧跟[的后面时才能起到作用。

三、分行匹配模式(multiline mode)

分行匹配模式使得正则表达式引擎把行分隔符当作一个字符串分隔符来对待,也就是将行分隔符作为一个字符串分隔符,会继续查找下一个字符串。在分行模式下,^不仅匹配正常的字符串开头,还将匹配行分隔符(换行符)后面的开始位置,$不仅匹配正常的字符串结尾,还将匹配行分隔符(换行符)后面的结束位置。
  使用时,(?m)必须出现在整个模式的最前面。例子如下:
  分行匹配(?m)
警告:有一些正则表达式实现不支持(?m)。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值