【正则表达式入门】第四节——位置匹配

这一节,介绍在正则表达式中,如何针对位置,来使用设计的正则表达式。关于位置匹配,按照词、段落、行的类别来分的话,可以分为单词边界匹配、字符串边界匹配与分行匹配三种。

单词边界匹配

\b 限定符,来指定单词的边界。
即单个\b 用在单词前面,表示匹配一个单词的开头,\b 用在单词后面,表示匹配一个单词的结尾。两个\b 配合来使用,用来匹配一个单词的开始以及结尾。

正则表达式
\bcat\b

表示只匹配cat这个单词,cat前后有其他字母和数字的,比如cat1、acat将不能被匹配。

在这里插入图片描述

根据上图结果显示,可以看出,匹配到了单词cat、也匹配到了cat.、还包括<cat>中的cat。

❗️注意:
\b 限定符匹配的是能构成单词的字符,也就是字母、数字和下划线。所以在上面的正则表达式匹配结果中可以看到,对于单词前后为其他符号、特殊符号的也能进行匹配。

💡额外:
如果要不匹配单词边界,可以使用限定符\B

字符串边界匹配

^元字符,用来表示字符串的开头。
$元字符,用来表示字符串的结尾。

  1. 正则表达式
    ^cat
    表示要匹配整个字符串的开头,也就是第一行最开始的位置。

在这里插入图片描述

根据上图结果显示,第一行的cat被匹配,第二行的cat则未被匹配。

  1. 正则表达式
    cat$
    表示要匹配整个字符串的结尾,也就是最后一行的末尾位置。

在这里插入图片描述

根据上图结果显示,最后一行中,只有末尾的cat被匹配,而最后一行前面的cat则未被匹配。

分行匹配

(?m)记号,放在正则表达式的最前面,表示启动分行匹配模式。

为什么要有分行匹配?分行匹配能干什么?
当想要针对每行的特定的位置上的字符进行查询时,当想要对多行进行同时查找时,这时候分行匹配就派上了用场。
最常见的例子就是,在很多流行编程语言中使用的注释符号\\,使用分行匹配,可以匹配到每行中的字符。当然也可以通过设计正则表达式,匹配到这些行中的特定位置。

  1. 正则表达式
    (?m)^cat

该正则表达式表示,匹配cat开头每一行。

在这里插入图片描述

根据上图显示,正则表达式匹配到了以cat开头的行。

2.正则表达式
(?m)^cat\d+

该正则表达式表示,要匹配cat开头,后面跟着至少一个数字的每一行。

在这里插入图片描述

根据上图显示,正则表达式匹配到了以cat1、cat2、cat1234等cat加数字开头的行。

本节使用的实例代码

cat
category
cat. X 10.9 Maverick

cat X 10.10 Yosemite
cat1 X 10.10 Yosemite
cat2 X 10.10 Yosemite
Cat X 10.11 A Capita
category 10.12 Sierra
Category 10.13 Moj_
cat12@qq.com
cat1234@qq.com
cat_123@qq.com
Catate@outlook.com
acat
cat_sa@sina.com
<cat>A</cat>ads<cat>B</cat>
cat cat

「参考」
《正则表达式必知必会》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值