Вроде бы простая проблема, но не могу найти решение. Я надеялся, что негативный прогноз поможет, но это не так. В такой строке:
AYB AXZB AZB
я хочу сопоставить комбинацию A и B с X между ними и что-нибудь еще, кроме не другого A или B. То есть я смогу найти «AXZB» только в строке выше . A, X и B не просто символы в реальном примере, поэтому отрицание не вариант.
Обновление:
Уточнение требований - как указано выше, A, X и B - это не просто символы, а многосимвольные шаблоны, поэтому [^AB]
не вариант.
Правильный ответ:
(A(?:(?!(A|B)).)*?X(?:(?!(A|B)).)*?B)
AYB
иAZB
между ними нет другогоA
илиB
.. ЕслиX
должен постоянно находиться, вы, вероятно, могли бы сделатьA[^AB]*X[^AB]*B
- person hwnd   schedule 13.01.2015\bA\S*X\S*B\b
? - person Avinash Raj   schedule 13.01.2015