Я использую регулярное выражение для сопоставления с условиями в запросе SQL.
Я хочу WHERE <ANY CONDITION>
, но за исключением WHERE ROWNUM <WHATEVER>
.
Поэтому я не хочу, чтобы ROWNUM
появлялся после ключевого слова WHERE
.
Я использовал Lookaheads для достижения этой цели.Мое регулярное выражение WHERE (.*(?! ROWNUM )+)
.Проблема в том, что он все еще соответствует WHERE ROWNUM < 1000
.Если я удалю пробел перед ROWNUM
в регулярном выражении, то любой столбец с именем, заканчивающимся на ROWNUM
, не будет совпадать.Если я удалю пробел после WHERE
, он совпадет, даже если после ключевого слова WHERE
пробела не будет.Однако если между ROWNUM
и ключевым словом WHERE
есть два пробела или любой другой символ (это может быть условием), тогда все в порядке.Поэтому, если ROWNUM
является первым условием, мое регулярное выражение не работает.
Как это можно исправить?