我有一个匹配 x 或 y 条件的正则表达式。有时这些匹配项会重叠,我想优先考虑其中一个条件。
这是我的测试用例。
正则表达式:
X[^\w]*\>|\>[^\w]*X
输入:
Soup > X > Alphabet
Alphabet Soup > X
X > Alphabet Soup
匹配:
Highlighted match results http://i.friendfeed.com/b55db94551503bf13d16f944fc56d9ff56676b4f
第一个突出显示的匹配项(黄色)应该是 X > 而不是 > X 但我不确定如何在重叠的情况下优先考虑其中一个匹配项.
最佳答案
应该这样做:
X[^\w]*>|>[^\w]*X(?![^\w]*>)
低优先级备选方案之后的负面展望。当它找到 "> X"
,但后面有一个 ">"
时,应该跳过它以支持 "X >"
.
关于c# - 当存在重叠匹配项时,在 Regex 中优先选择一个匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/670726/