删除方括号和单引号正则表达式不起作用

时间:2011-05-09 19:23:32

标签: c# regex vb.net

我有以下字符串

  

[custID] ='A99999999'

我正在尝试以下方法删除方括号和单引号

Regex.Replace(sql, "/[\[\]']+/g", " ")

但那不起作用。我一直得到相同的结果

注意:sql是一个包含上面字符串的变量。

我希望结果是

  

custID = A99999999

5 个答案:

答案 0 :(得分:14)

\[没有按照您的想法行事。 Regex也不像Perl中的那样。试试这个:

Regex.Replace(sql, @"[\[\]']+", "");

答案 1 :(得分:1)

这是你要找的吗? ['\\/]

这应该匹配斜杠或单引号的任何单个字符。

答案 2 :(得分:1)

我认为你正在寻找Regex.Replace(sql, @"[\[\]']", " "); @引入了一个不需要转义的字符串,Regex.Replace替换了所有匹配项,因此不需要g标志 - 我认为这里不支持你的正则表达式语法。

答案 3 :(得分:1)

您可以使用:

Regex.Replace(sql, "[][']", "")

如果您想知道它是如何工作的,]之后[不会被视为结束,而是视为字面字符。

答案 4 :(得分:0)

您可以使用字符串拆分和连接,如下所示:

        string sql = "[custID] = 'A99999999'";
        var correctedString = string.Join("",sql.Split(new char[] {'[', ']', '\''}));
        Console.Write(correctedString);

如果要使用正则表达式,请使用[\[\]']替换它们。