正则表达式负前瞻

标签 regex negative-lookahead regex-lookarounds

我需要修改这个正则表达式

href=\"(.*)\"

符合这个...
href="./pothole_locator_map.aspx?lang=en-gb&lat=53.153977&lng=-3.533306"

不匹配这个...
href="./pothole_locator_map.aspx?lang=en-gb&lat=53.153977&lng=-3.533306&returnurl=AbandonedVehicles.aspx"

试过这个,但没有运气
href=\"(.*)\"(?!&returnurl=AbandonedVehicles.aspx)

任何帮助将非常感激。

谢谢,
阿尔。

最佳答案

前瞻应该放在字符串被匹配消耗之前,即

href=\"(?!.*&returnurl=AbandonedVehicles\.aspx)(.*)\"

关于正则表达式负前瞻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2646213/

相关文章:

regex - 匹配字符串不包含带有正则表达式的子字符串

regex - 在文本编辑器中仅用正则表达式替换第一次出现的单词

java - java 正则表达式中的嵌套环视

php - 如果在匹配之前遇到下划线则匹配字符串

mysql - 如何将 REGEXP 与字边界等转义序列一起使用?

java - 使用 java 正则表达式进行电子邮件 ID 验证

java - Groovy/Java - 复制路径中带有括号的文件时出现问题

c# - .* 在正则表达式中做什么?

java - 是否可以在 regex java 中定义前瞻范围?

正则表达式(regexlookarounds)检测不在某些字符串之间的某个字符串(lookahead和lookbehind,单词不被单词包围)