C#Regex与点中的字符串不匹配

时间:2017-11-16 21:27:23

标签: c# regex

我正在尝试在一串文本中进行查找替换。我正在使用这样的正则表达式:

Regex regexText = new Regex("TEST");

strText = regexText.Replace(strText, value);

在这个例子中,我试图在文本字符串中找到字符串“Test.Value”。但是,如果此值出现在字符串中,则不会发生替换。

如果我删除了点,例如:

#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = nullptr);
};

如果我在字符串中加上单词“TEST”,它就可以替换它。

有没有办法让这个与“。”的字符串一起使用?

1 个答案:

答案 0 :(得分:-1)

你必须逃避点:

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

正如你所写,正则表达式只是寻找“测试”,然后是除换行符之外的任何字符,后跟“值”。

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

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

无论如何,在这种情况下,我认为不需要正则表达式。一个简单的字符串替换应该做的工作:

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