2

如果我正在做这样的事情:

someString.Replace("abc","").Replace("def","").Replace(@"c:\Windows","")

我该如何替换它

Regex.Replace(someString," \\here I don't know what the pattern should be")

我试过这个:

Regex.Replace(someString, @"(?:abc|def|c:\Windows)")

但它没有用

更新...

问题是当我通过这样的路径时

Regex.Replace(someString, @"(?:abc|def|"+aPath+")")
4

2 回答 2

6
`But it didnt work` doesn't say much helpfull!

试试这个:

someString = Regex.Replace(someString, @"(?:abc|def|ghi|c:\\Windows)", "")

当我尝试它时它确实有效。我认为您的代码不起作用的原因是因为您忘记了替换字符串,并且您必须转义路径中的反斜杠。

于 2012-07-18T20:04:45.357 回答
3

我假设“不起作用”的东西是您的 C:\windows 替代品。你需要

someString = Regex.Replace(someString, @"(?:abc|def|C:\\windows)","");

问题是您需要转义反斜杠。未转义的反斜杠在正则表达式中有意义。特别是,在这种情况下,\W 实际上匹配任何非字母数字字符。

编辑以转义任意字符串,您可以使用Regex.Escape(yourString);

于 2012-07-18T20:12:58.617 回答