Как я могу искать ключевые слова, которые не находятся внутри строки.
Например, если у меня есть текст:
Привет, этот текст является примером.
bla bla bla "этот текст находится внутри строки"
"случайная строка" больше текста bla bla bla "foo"
Мне нравится иметь возможность сопоставлять все слова text
, которые не находятся внутри " "
. В другом я хотел бы соответствовать:
note Я не хочу соответствовать тексту, выделенному красным цветом, потому что он находится внутри строки
Возможное решение:
Я работал над этим, и это то, что у меня есть до сих пор:
(?s)((?<q>")|text)(?(q).*?"|)
Обратите внимание, что regex использует оператор if как: (? (предикат) true альтернатива | ложная альтернатива)
поэтому регулярное выражение будет читать:
find "или text. Если вы найдете", то продолжайте выбор, пока не найдете "снова (. *?" ), если вы найдете текст, тогда ничего не сделайте...
когда я запускаю это регулярное выражение, я все равно сопоставляю всю строку. Я задаю этот вопрос для обучения. Я знаю, что могу удалить все строки, а затем искать то, что мне нужно.