我正在尝试使用负向回顾(negative lookbehind)的正则表达式来捕获一些数据,以便在某个特定字符串之前不匹配。我知道有两种基本格式,但都不起作用。 我在搜索应用程序中执行此操作,无法使用Java进行修改,因此解决方案必须纯粹使用正则表达式。
这种格式会导致错误,显示“正则表达式语法错误:无效的限定符”:
这种格式会导致错误,显示“正则表达式语法错误:无效的限定符”:
(?<!Product) Type : (.*?)<
这种格式会像普通的回顾预测(lookbehind)一样工作,并且只有在Type之前有Product时才捕获:
(?!=Product) Type : (.*?)<
我做错了什么?
(?!=Product)
不是一个向后查找,而是对字面字符串=Product
的负向向前查找。它不可能按照你所说的方式工作。你需要阅读**这篇文章**,因为你对于向前查找有一些错误的想法。 - Alan Moorejava.util.regex
有它,但大多数其他人没有。如果你明白我的意思,我很想知道你对这个问题的想法。 - Travis Crum(?<=...)
表示正向lookbehind,而使用(?<!...)
表示负向lookbehind。 - Alan Moore