我无法解决这个问题,它匹配一个星号:
// Escaped multiply
Text = Text.replace(new RegExp("\\*", "g"), '[MULTIPLY]');
我需要它匹配\*
,我已经尝试过:
\\*
\\\\*
\\\\\*
无法解决,感谢任何帮助!
你很接近了,\\\\\\*
就可以了。
最好使用verbatim字符串,这样会更容易:
RegExp(@"\\\*", "g")
\\
匹配一个字面上的反斜杠(在普通字符串中为\\\\
),\*
匹配一个星号(在普通字符串中为\\*
)。
"\*"
,那么您需要为正则表达式引擎转义这两个字符,否则它们的含义就不同了。我们用反斜杠进行转义,这样您将得到"\\\*"
。"\\\\\\*"
。@"\\\*"
。你的语法完全错误。它看起来更像是Javascript而不是C#。
这个可以正常工作:
string Text = "asdf*sadf";
Text = Regex.Replace(Text, "\\*", "[MULTIPLY]");
Console.WriteLine(Text);
输出:
asdf[MULTIPLY]sadf
如果要匹配 \*
,则需要使用模式 "\\\\\\*"
。