У меня есть регулярное выражение, которое соответствует условию x ИЛИ y . Иногда эти совпадения перекрываются, и я хочу отдать предпочтение одному из условий.
Вот мой тестовый пример.
Regex:
X[^\w]*\>|\>[^\w]*X
Введите:
Суп> X> Алфавит Алфавитный суп> X X> Алфавитный суп
Матчи:
Выделенные результаты матчей http://i.friendfeed.com/b55db94551503bf13d16f944fc56d9ff56676b4f
Первое выделенное совпадение (желтое) должно быть X> вместо > X , но я не уверен, как отдать предпочтение одному из совпадений при перекрытии.
Это должно сделать это:
X[^\w]*>|>[^\w]*X(?![^\w]*>)
Негативный прогноз после альтернативы с низким приоритетом. Когда он находит "> X", но после него стоит " >", его следует пропустить в пользу "X >".
"> X"
" >"
"X >"