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);