C#正则表达式不匹配中带点的字符串

C#正则表达式不匹配中带点的字符串,c#,regex,C#,Regex,我正在尝试在一个文本字符串中进行查找替换。我使用的正则表达式如下: Regex regexText = new Regex("Test.Value"); strText = regexText.Replace(strText, value); 在本例中,我试图在文本字符串中找到字符串“Test.Value”。但是,如果该值出现在字符串中,则不会发生替换 如果我去掉这些点,例如: Regex regexText = new Regex("TEST"); strText = regexText

我正在尝试在一个文本字符串中进行查找替换。我使用的正则表达式如下:

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

strText = regexText.Replace(strText, value);
在本例中,我试图在文本字符串中找到字符串“Test.Value”。但是,如果该值出现在字符串中,则不会发生替换

如果我去掉这些点,例如:

Regex regexText = new Regex("TEST");

strText = regexText.Replace(strText, value);
如果我把单词“TEST”放在字符串中,它会很好地替换它


有没有一种方法可以让它与带“.”的字符串一起工作?

您必须避开圆点:

Regex regexText = new Regex(@"Test\.Value");
正如您所写的,正则表达式只是查找“Test”,后跟除换行符之外的任何字符,后跟“Value”

最重要的是,如果您要查找的文本稍有不同,则不区分大小写的匹配可以帮助您:

Regex regexText = new Regex(@"Test\.Value", RegexOptions.IgnoreCase);
无论如何,在这种情况下,我认为没有必要使用正则表达式。简单的字符串替换应该可以完成以下工作:

strText.Replace("Test.Value", value);

应该是
\。
它在正则表达式中有特殊意义。请提供准确的输入字符串
strText
值和预期结果。
匹配.NET正则表达式中除换行符以外的任何字符,并且它也将匹配文字点。请发布您有问题的真实代码。除了其他字符外,Dot应该与Dot匹配…因此,帖子中的代码应该可以工作(不必像您期望的那样)@AlexeiLevenkov这就是我的意思:)您的输入字符串包含“Test.Value”还是“Test.Value”?这很重要。如果一个
与点不匹配,为什么你认为你更严格的模式(如
\。
只匹配
字符)会有帮助?这没有帮助,但这是OP中正则表达式的工作方式。如果他试图替换“Test.Value”,并且他的字符串包含“Test5Value”,那么这也将被删除。此外,@可能是一个解决方案。如果正则表达式不成立,我还提出了一个替代方案。
@
与OP的模式无关。此外,如果问题在于转义
,那么问题显然是重复了。为什么要回答?