当存在重叠匹配时,在正则表达式中匹配一个匹配?

Eri*_*ver 3 .net c# regex

我有一个匹配x OR y条件的正则表达式.有时这些匹配重叠,我想优先考虑其中一个条件.

这是我的测试用例.

正则表达式:

X[^\w]*\>|\>[^\w]*X
Run Code Online (Sandbox Code Playgroud)

输入:

汤> X>字母表
字母汤> X
X>字母汤

火柴:

突出显示的匹配结果http://i.friendfeed.com/b55db94551503bf13d16f944fc56d9ff56676b4f

第一个突出显示的匹配(黄色)应该是X>而不是> X但是我不确定如何给出重叠给出的匹配之一.

Mar*_*rot 8

这应该这样做:

X[^\w]*>|>[^\w]*X(?![^\w]*>)
Run Code Online (Sandbox Code Playgroud)

低优先级替代后的负面预测.当它找到"> X",但有一个" >"后,它应该被跳过赞成"X >".