正则表达式替换中无法识别的转义序列

时间:2016-12-26 21:52:03

标签: c# regex

我有以下内容:

String source = "this_is__a_string____";
String output = Regex.Replace(source, @"\_+", "_");

我需要删除连续短划线,所以我正在使用:

Unhandled Exception: System.AggregateException: 
One or more errors occurred. (parsing '\_+' - Unrecognized escape sequence \\_.) 
---> System.ArgumentException: parsing '\_+' - Unrecognized escape sequence \\_.

有时我需要删除其他重复的字符,所以我尝试了:

{{1}}

在这种情况下,我收到了错误:

{{1}}

如何更改我的代码以便我可以将它与任何角色一起使用?

3 个答案:

答案 0 :(得分:1)

以下代码按预期工作:

string source = "this_is__a_string____";
string output = Regex.Replace(source, @"_+", "_");

答案 1 :(得分:0)

删除反斜杠,好好去!

答案 2 :(得分:0)

如果您不掌握替换模式:

  

使用.net

提供的方法逃离“Escapes”

这可以通过使用来实现 System.Text.RegularExpressions.Regex.Escape

示例:

String source = "this_is__a_string____";
String output = Regex.Replace(source, Regex.Escape(@"\_+"), "_");