в моей программе на C # у меня есть текстовый анализатор регулярных выражений, который находит все вхождения слов, которые заключены в квадратные скобки. Например, [[что угодно]] найдет слово что угодно.
На втором шаге я хочу посчитать, как часто найденное слово (в моем примере: что угодно) появляется во всем тексте. Для этого я пытаюсь создать RE, которое содержит найденное слово и подсчитывает, сколько совпадений я получаю. Проблема в том, что найденное слово также может содержать специальные символы и следующее регулярное выражение:
string foundWord = "(anything";
Regex countOccurences = new Regex(foundWord);
явно потерпит неудачу, когда переменная содержит специальные символы, такие как '('.
Expresso предлагает для сопоставления целых выражений следующую конструкцию:
Regex countOccurences = new Regex("(?(" + foundWord + ")Yes|No)");
но когда в этом сценарии foundWord является числом, таким как '2009', RE пытается интерпретировать его как ссылку на группу (которая, очевидно, не определена). В моем тексте может быть любая комбинация обычных символов, специальных символов, чисел и т. Д.
Как я могу сказать RE интерпретировать данную строку только как буквальное выражение?
Заранее спасибо,
Frank