C# Regex не сопоставляет строки с точкой в

Я пытаюсь найти замену в текстовой строке. Я использую Regex, как это:

Regex regexText = new Regex("Test.Value");

strText = regexText.Replace(strText, value);

В этом примере я пытаюсь найти строку "Test.Value" в текстовой строке. Однако, если это значение появляется в строке, замена не происходит.

Если я удалю точки, например:

Regex regexText = new Regex("TEST");

strText = regexText.Replace(strText, value);

Если я вставлю слово "ТЕСТ" в строку, он заменит его просто отлично.

Есть ли способ заставить это работать со строками с "." В?

1 ответ

Решение

Вы должны избежать точки:

Regex regexText = new Regex(@"Test\.Value");

Как вы уже написали, регулярное выражение просто ищет "Test", за которым следует любой символ, кроме перевода строки, а затем "Value".

Кроме того, если текст, который вы ищете, немного отличается, сопоставление без учета регистра может вам помочь:

Regex regexText = new Regex(@"Test\.Value", RegexOptions.IgnoreCase);

Во всяком случае, в этом случае я не думаю, что регулярное выражение необходимо. Простая замена строки должна сделать работу:

strText.Replace("Test.Value", value);
Другие вопросы по тегам