Я пытаюсь использовать Regex в C# для поиска списка ключевых слов в кучке текста. Однако я хочу быть очень конкретным в отношении того, что может быть «окружающим» текстом для чего-то, что можно считать ключевым словом.Regex keywords
Так, например, ключевое слово «привет» должно быть найдено в (привет), привет., Привет <, но не в hellothere.
Основная проблема заключается в том, что я НЕ ОБРАЩАЮВАЮТ разделители, если ключевое слово - это первое слово или последнее слово, это нормально. Я предполагаю, что другой способ взглянуть на это состоит в том, что начало файла и конец файла должны быть приемлемыми разделителями.
Я новичок в Regex, поэтому я надеялся, что кто-то может помочь мне получить шаблон правильно. До сих пор у меня есть:..
[ <(.]+?keyword[<(.]+?
< где, (, некоторые примеры сепараторов и ключевое слово, конечно, ключевое слово Я ищу
Заранее спасибо
Singleline позволяет '.' (точка) метасимволы соответствуют символу-разделителю символов (\ r и \ n); это не повлияет на это регулярное выражение, поскольку единственные точки находятся в классах символов, где они все равно будут совпадать с точками. –
@Alan: Моя точка зрения была только в том, что опция Singleline/Multiline изменяет значение '^' и '$', а не '.' В вопросе указывается, что OP специально хочет обнаружить' .' в качестве разделителя. – Noldorin
Похоже, вы думаете о Singleline и Multiline, как о противоположных состояниях одного режима переключения. Имена, кажется, подразумевают столько же, но на самом деле они полностью независимы: Singleline изменяет значение «.». и Multiline изменяет значение «^» и «$». «Singleline» всегда была неудачным именем; некоторые вкусы называют его DOTALL-режимом, что намного более наглядно. –