正则表达式匹配指定字符区间的内容,且不包含指定字符

博客介绍了正则表达式的匹配模式,包括贪婪匹配和非贪婪匹配,说明了二者区别。还讲解了非捕获元中的正向预查?=和负向预查?!,并通过案例展示了正则表达式的使用,如匹配特定符号前的内容。

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

举例:(?<=%%!).*(?=%%~)

(?<=%%!)       匹配一个位置,而不是字符.这个位置在 %%! 后面

(?=%%~)        匹配一个位置,而不是字符.这个位置在 %%~ 前面

.*                     这两个位置之间的所有字符.贪婪匹配模式

.*?                   这两个位置之间的所有字符.懒惰匹配模式,也叫非贪婪模式

 

贪婪匹配:匹配到结束

非贪婪匹配:有多个的会匹配多个

 

案例:

$abc>=10&&$ABC<20

希望匹配$abc$ABC,也就是>= <这些符号前的内容。

使用正则:

/.*?(?=>|<)/

1、为什么不使用  .*  呢?
   答:如果使用.*,会只匹配到一次,也就是$abc>=10&&$ABC<20。

2、?= 是什么?

      非捕获元(有3个):?:    ?=   ?!

      选择:圆括号将所有选择项括起来,相邻的选择项之间用 | 分隔。但用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用 ?: 放在第一个选项前来消除这种副作用。

       ?= 正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串

       ?!  负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。

转载于:https://www.cnblogs.com/zuojiayi/p/10935683.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值