正则

本文介绍了正则表达式的多种匹配规则,如. 匹配除换行符外任意字符,\w 匹配字母等。还说明了重复次数的表示方法,如 * 表示零次或更多次等。同时给出多个正则表达式示例,展示不同规则在源文本中的匹配结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

. 匹配除换行符以外的任意字符

\w 匹配字母或数字或下划线或汉字

\s 匹配任意的空白符,包含空格、换行、回车,多个空格就是空白

\d 匹配数字

\b 匹配单词的开始或结束

^ 匹配字符串的开始

$ 匹配字符串的结束

[a-z] 指定a到z的任一字母

[0-9] 指定0到9的任一数字

[\u4e00-\u9fa5] 代表汉字,4e00代表中国第一个汉字的编码,9fa5代表最后一个

[asz] 指a,s,z三个字符中取任意一个字符

* 表示重复零次或更多次(零次以上包含零次)

+ 表示重复一次或更多次(一次以上包含一次)

? 表示重复零或一次

{n} 重复n次

{n,} 重复n次或更多次

{n,m} 重复n到m次

 

关联:

.* 连在一起就意味着任意数量的不包含换行的字符

*? 重复任意次,但尽可能少重复,如"acbacb"正则"a.*?b"只会取到第一个"acb",原本可以全部取到,但加了限定符后,只会匹配尽可能少的字符,而"acbacb"最少字符的结果就是"acb"

+? 重复一次或更多次,但尽可能少重复,与上面一样,只是至少要重复一次

?? 重复0次或1次,但尽可能少重复,如"aaacb"正则"a.??b"只会取到最后的三个字符"acb"

{n,m}? 重复n到m次,但尽可能少重复,如"aaaaaaaa"正则"a{0,m}",因为最少是0次,所以取到结果为空

{n,}? 重复n次以上,但尽可能少重复,如"aaaaaaaa"正则"a{1,}",因为最少是1次,所以取到结果为"a"

 

正则表达式:a*        *代表0次或更多次,优先匹配多次

源文本:asdaadaaaeaw

结果:a  aa aaa a  ,共10位,aa是一位,aaa是一位,最后的a后面有两个空格,s,d等匹配不上就匹配空白,默认会多出一个空白

 

正则表达式:a+       +代表一次或更多次,优先匹配多次

源文本:asdaadaaaeaw

结果:a aa aaa a,共4位,4个加粗的,没有空格

 

正则表达式:a?      ?代表零次或一次,要么一个要么零个,空格和a都有

源文本:asdaadaaaeaw

结果:a  aa aaa a  ,共13位,第一个a和aa中间有两个空格,最后的a后面有两个空格,aa是上下排列,aaa也是上下排列

 

正则表达式:a*?      *?代表零次或更多次,优先匹配零次

源文本:asdaadaaaeaw

结果:13个空格,上下排列

正则表达式:a+?      +?代表一次或更多次,优先匹配一次

源文本:asdaadaaaeaw

结果:7个a,上下排列

 

正则表达式:a??      ??重复零次或一次,尽可能少重复

源文本:asdaadaaaeaw

结果:13个空格,上下排列

 

正则表达式:aa*?b  

源文本:abaabaseb

结果:ab和aab,上下排列

转载于:https://www.cnblogs.com/laosun0204/p/11042782.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值