регулярное выражение и строка - PullRequest
0 голосов
/ 28 октября 2011

Рассмотрим следующее:

string keywords = "(load|save|close)";
Regex x = new Regex(@"\b"+keywords+"\b");

У меня нет совпадений. Однако, если я сделаю это:

Regex x = new Regex(@"\b(load|save|close)\b");

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

Ответы [ 3 ]

8 голосов
/ 28 октября 2011

Последнему \b в первом фрагменте кода требуется перед собой точный спецификатор строки (@), а также отдельный экземпляр строки.

string keywords = "(load|save|close)"; 
Regex x = new Regex(@"\b"+keywords+@"\b");  
3 голосов
/ 28 октября 2011

Вам не хватает другого спецификатора дословной строки (@ с префиксом последнего \b):

Regex x = new Regex(@"\b" + keywords + @"\b");
2 голосов
/ 28 октября 2011
Regex x = new Regex(@"\b"+keywords+@"\b");

Вы забыли дополнительные @ до секунды "\b"

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