我有一个匹配 x OR y 条件的正则表达式。有时这些匹配重叠,我想优先考虑其中一个条件。
这是我的测试用例。
正则表达式:
X[^\w]*\>|\>[^\w]*X
输入:
汤> X>字母
字母汤> X
X>字母汤
匹配
Highlighted match results http://i.friendfeed.com/b55db94551503bf13d16f944fc56d9ff56676b4f
第一个突出显示的匹配(黄色)应为 X> ,而不是> X 但我不确定如何优先考虑给出重叠的其中一个匹配。
答案 0 :(得分:8)
这应该这样做:
X[^\w]*>|>[^\w]*X(?![^\w]*>)
低优先级替代后的负面预测。如果找到"> X"
,但后面有" >"
,则应跳过"X >"
。