регулярное выражение соответствует, только если подстрока является единственным вхождением, и не соответствует, если подстрока плюс что-то еще - PullRequest
0 голосов
/ 23 апреля 2019

Это немного сложно. так что пример может помочь

Я хочу сопоставить / сгруппировать значения только из следующего типа строки

SELECT hello,world from tableName where id = 'hello';

и НЕ

SELECT hello,world FROM tableName where id='hello' and blah='jjk';

SELECT hello from tableName where blah='jjk' and id='hello';

Как видите, я хочу сопоставить только where id = 'hello' - это единственное предложение where, которое присутствует.

Я хочу сгруппировать, чтобы получить columnNames, tableName и id;

Вот регулярное выражение , которое я строю, но оно соответствует всем вышеперечисленным.

ПРИМЕЧАНИЕ: значение id является фиксированной длиной. То есть это всегда 5 символов.

1 Ответ

1 голос
/ 23 апреля 2019

Как насчет этого?Кажется, делает то, что вы просили.

SELECT\s+(.*)\s+FROM\s+(.*)[\s]+?where\s+id\s*=\s*('[a-z]{5}')\s*;$

Regex101 ссылка с некоторыми тестами: https://regex101.com/r/anRIrL/3/tests

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...