如何通过正则在Var#n与</tr>的匹配区间内查找available字符串?
需求完全可行,两种实现方式供参考
分步处理(简单直观)
先用修正后的正则(?<=Var#2).*?(?=</tr>)匹配出Var#2所在行到</tr>之间的全部内容(注意你原正则里的(?=tr>)漏了斜杠,应该是(?=</tr>),否则匹配边界不对),之后直接检查匹配结果里是否包含字符串available即可,比如用编程语言里的字符串包含判断(像Python的in关键字、JS的includes()方法)。一步到位的正则写法
把两个逻辑合并成一个正则,直接验证目标区间内是否存在available:(?<=Var#2).*?available.*?(?=</tr>)这个正则会从
Var#2的位置开始,匹配任意内容直到遇到available,再继续匹配到</tr>结束。如果能匹配到结果,就说明目标区间里存在available;反之则不存在。关于分组失败的可能原因
你之前尝试分组没成功,大概率是两个问题:一是原正则的边界写错(漏了</tr>的斜杠),导致匹配的区间不对;二是没必要用分组,这个需求不需要捕获特定分组内容,直接匹配包含关系就行。
内容的提问来源于stack exchange,提问作者Gewis
相关产品推荐
相关产品推荐

