在C#中使用Regex删除特殊字符

时间:2017-07-04 12:35:04

标签: c# regex

我在这段代码中遇到一个问题。我想删除所有特殊字符,但方括号不会被删除。

string regExp = "[\\\"]";
string tmp = Regex.Replace(str, regExp," ");
string[] strArray = tmp.Split(',');

obj.amcid = db.Execute("select MAX(amcid)+1 from sca_amcmaster");
foreach (string i in strArray)
{
  // int myInts = int.Parse(i);
  db.Execute(";EXEC insertitems1 @0,@1", i, obj.invoiceno);
}

1 个答案:

答案 0 :(得分:0)

Square Brackets是正则表达式中的元字符,它允许我们定义事物列表。因此,如果您想使用Regex进行匹配,则需要将表达式更改为:

string regExp = "\[\\\"\]";

因此,您只需在方括号前加入反斜杠以匹配。

如果表达式中不需要它们,您可以使用括号和字符进行分组吗? (零个或多个匹配):

string regExp = "(\[)?(\\)?(\")?(\])?";