积极答复者
如何转义正则表达式中的特殊字符

问题
-
最近被正则表达式中的特殊字符搞晕了,还在网上搜了段代码,可惜无法编译通过!
我的主要目的是对用户输入中的正则敏感字符进行安全转义替换,以防止正则表达时构造时失败
下面是那个无法通过的代码,谁来帮我改下,或者给段代码,谢谢!
static string RegexStringToCommonString(string regexStr)
{
Regex replace = new Regex("[.$^{\\[(|)*+?\\\\]");
return replace.Replace(regexStr, (Match m) => "\\" + m.Value);
}- 已编辑 菜鸟求助啊 2009年9月21日 13:19
- 已移动 Sheng Jiang 蒋晟Moderator 2009年9月21日 17:13 正则表达式语法问题 (发件人:Visual C#)
- 已移动 肖小勇Moderator 2009年9月22日 1:08 .Net Framework 一般性问题 (发件人:一般性问题讨论区)
答案
-
你好 不太清楚你的意思
你的.net是2.0版本?
static string RegexStringToCommonString(string regexStr)
{
Regex replace = new Regex("[\\()\\\\]");
return replace.Replace(regexStr, delegate(Match m)
{
return "\\" + m.Value;
});
}
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond- 已标记为答案 菜鸟求助啊 2009年9月21日 13:48
全部回复
-
你好 不太清楚你的意思
你的.net是2.0版本?
static string RegexStringToCommonString(string regexStr)
{
Regex replace = new Regex("[\\()\\\\]");
return replace.Replace(regexStr, delegate(Match m)
{
return "\\" + m.Value;
});
}
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond- 已标记为答案 菜鸟求助啊 2009年9月21日 13:48
-
对,是2.0的
主要是想把字符串中所含的正则特殊符号用\\替换掉
抱歉公式的内容写错了([.$^{\\[(|)*+?\\\\])
2.0不支持那样的表达式你可以像我那样用匿名委托
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond