Регулярное выражение, соответствующее всему, кроме определенных слов - PullRequest
1 голос
/ 03 июня 2019

Я просмотрел другие вопросы об исключении регулярных выражений, но не смог найти ответ на свой вопрос.

У меня есть оператор SQL

select --(* vendor(microsoft), product(odbc) guid'12345678-1234-1234-1234-123456789012' *)-- from TAB

С регулярным выражением,Я хочу найти все символы в этой строке, кроме

--(* vendor(microsoft), product(odbc)

и

*)--

Имена поставщиков и продуктов (microsoft и odbc) могут быть любыми, но я все еще хочучтобы исключить его.

Мне все равно, какие символы есть, или даже если оператор SQL даже синтаксически правильный.Строка может выглядеть следующим образом, и я все еще хочу найти все, включая пробелы, за исключением того, что я упомянул выше:

{Jane           Doe?= --(* vendor(micro1macro2?), product(cdb!o) 123$% --(**) *)-- = ?

Пока у меня есть это выражение:

(--\(\* vendor\(.*\), product\(.*?\))|(\*\)--)

Что, похоже, помогает найти то, что я хочу исключить https://regex101.com/r/rMbYHz/204. Однако я не могу это отрицать.

1 Ответ

0 голосов
/ 03 июня 2019

replace() делает то, что вы хотите?

select replace(replace(t.col, '--(* vendor(microsoft), product(odbc)', ''
                      ), '*)--', ''
              )
...