如何修改正则表达式,排除myticket=后的数值仅匹配ticket相关值
修改正则表达式排除特定前缀的匹配结果
原正则(?<=ticket=)[0-9]+会匹配所有以ticket=结尾的前缀后的数字,因此myticket=这类包含ticket=后缀的前缀也会被命中。要排除myticket=后的数字,只需在原断言基础上增加负向后行断言,确保ticket=的前面不是my。
修改后的正则表达式:
(?<=(?<!my)ticket=)\d+
正则说明
(?<!my):负向后行断言,确保当前位置的前面不是my字符串;(?<=(?<!my)ticket=):嵌套后行断言,匹配位置前面是ticket=且该ticket=前没有my;\d+:匹配后续的连续数字序列。
验证效果
对于以下输入内容:
ticket=00000000001
myticket=12345
sistersticket=9999
修改后的正则会精准匹配00000000001和9999,不会命中myticket=后的12345,完全符合需求。
内容的提问来源于stack exchange,提问作者Vyshak Puthusseri
相关产品推荐
相关产品推荐

