正则表达式学习 --- 03

本文详细介绍了正则表达式的四种匹配模式:不区分大小写模式、点号通配模式、多行匹配模式和注释模式。通过模式修饰符如(?i)、(?s)、(?m)和(?#...),可以改变正则表达式的匹配行为。例如,(?i)用于不区分大小写匹配,(?s)使点号匹配包括换行在内的所有字符,(?m)使^和$匹配每一行的开始和结束。这些模式对于正则表达式的精细化匹配至关重要。
摘要由CSDN通过智能技术生成

摘要

本文主要讲了正则的四种匹配模式(mode而非pattern)。

目录

匹配模式

什么是匹配模式

匹配模式是指正则中改变元字符匹配行为的方式,比如匹配时不区分大小写。

常见的匹配模式:

  1. 不区分大小写模式
  2. 点号通配模式(单行模式)
  3. 多行模式
  4. 注释模式

不区分大小写模式

首先如何来对各种模式进行表示呢?

通过模式修饰符(?模式标识)来进行修饰,当我们将模式修饰符放在正则前面就可以对整个正则表达式进行修饰了。

不区分大小写模式的模式修饰符是(?i).例如可以用(?i)today来匹配toDayTODAY (注:我在vscode中试了下,发现并不能成功匹配,查了下原因,应该是vscode的正则表达式的规则和正常的语法规则不太一样)

注意:(?i)(today) \1不仅可以匹配today today 也可以匹配today TODAY,因为(?i)修饰的是这整个正则。

但是((?i)totay) \1只能匹配today today,因为(?i)修饰的是第一个分组。

点号通配模式

.号可以匹配任意符号但是不能匹配换行,若想要匹配任何字符,可以使用点号通配模式。

点号通配模式也被称为单行匹配模式,其模式修饰符为(?s)

多行匹配模式

Tips:非多行模式下,^匹配字符串开头,$匹配字符串结尾,例如:^the|sunday$只会匹配到the sunday today is the sunday这个字符串中开头的the和结尾的sunday

多行匹配模式可以改变^$符号的规则,使得^$符号可以匹配上每行的开头或结尾,其模式修饰符为(?m)

注释模式

注释模式就和代码中的注释一样,用来对正则表达式进行注释。其模式修饰符为(?#注释内容)

例如:(\w+) \1(?#单词连续出现一次),这样就可以很清晰的让人理解这个正则表达式是表示连续出现一次的单词


版权声明

本文原创作者:ereson

博客地址 :https://ereson.github.io/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值