Не прочитал все ответы, но Мистер. Ответ Мортона весьма проницательный.
Этот вопрос также очень интересен, так как к нему можно подойти, и мы начнем с выражения, которое собирает наши NOT
слова, используя границу слова, измененную желаемыми результатами. Наконец, мы проводим от начала до конца нашей строки, что может остаться, особенно если мы хотим заменить, но эта последняя часть не нужна:
(?:(\bNOT\b).)*|([\w\s]+?)|(.*?)
Здесь у нас есть две нежелательные группы:
(?:(\bNOT\b).)*
и
(.*?)
и наши нужные данные находятся во второй группе захвата:
([\w\s]+?)
, который можно просто изменить, если у нас больше желаемых символов, чем указано в нашем классе символов: [\w\s]
.
RegEx
Если это выражение нежелательно и вы хотите изменить его, перейдите по этой ссылке на regex101.com .
RegEx Circuit
jex.im визуализирует регулярные выражения: