Сопоставление строки с регулярным выражением, если оно не заключено в круглые скобки

Я ищу соответствие строке «Упорядочить по XXX», где XXX может быть любой буквой, цифрой, точкой, запятой, пробелом или квадратной скобкой. . Однако я хотел бы сопоставить это только в том случае, если не окружен круглыми скобками (круглые скобки с одной стороны в порядке, если они не с обеих сторон). Таким образом, он должен совпадать с частью, выделенной курсивом, начиная с "", он не должен совпадать ни с чем в

Должен совпадать (совпадающий раздел, выделенный курсивом):

  • Выбрать X из Y порядок по z
  • Выбрать y = (выбрать верхнюю 1 Z из C Упорядочить по [ID] desc)

Не должно совпадать:

  • Выбрать X из Y (упорядочить по z)
  • Выбрать aa, NTILE(4) OVER (Порядок ab) group by ac

У меня есть строка регулярного выражения для соответствия порядку по тексту: [ ]*order by [\w,.\[\] ]+. Тем не менее, у меня возникли проблемы с правильным просмотром/за работой. Любые советы о том, как действовать?

8
задан Yaakov Ellis 14 June 2012 в 14:12
поделиться