C# 用于删除大于指定计数的连续特殊字符的正则表达式

C# 用于删除大于指定计数的连续特殊字符的正则表达式,c#,.net,regex,C#,.net,Regex,如果字符串中的字符/和\连续出现两次以上,我希望使用正则表达式删除其所有外观。这意味着,如果字符串包含abc///////def,我希望删除所有/。但是,它不应删除http://中的/ 有人可以建议吗?您可以使用/{3,},它将匹配/字符的3次或更多次出现 var result = Regex.Replace("abc///def", "/{3,}", ""); 更新:若要回复您的评论,*字符是正则表达式中的元字符,具有特殊含义,因此您需要对其进行转义。请尝试以下操作:\*{3,}。如果要组合

如果字符串中的字符
/
\
连续出现两次以上,我希望使用正则表达式删除其所有外观。这意味着,如果字符串包含
abc///////def
,我希望删除所有
/
。但是,它不应删除
http://
中的
/


有人可以建议吗?

您可以使用
/{3,}
,它将匹配
/
字符的3次或更多次出现

var result = Regex.Replace("abc///def", "/{3,}", "");
更新:若要回复您的评论,
*
字符是正则表达式中的元字符,具有特殊含义,因此您需要对其进行转义。请尝试以下操作:
\*{3,}
。如果要组合两个字符,可以使用字符类:
[/*]{3,}
。字符类由方括号表示。在字符类中,您不需要转义元字符,这就是为什么我只在其中列出
*
,而没有像前面那样转义它。

使用:


研究量词。这是非常基本的东西。它适用于“/”。我如何对字符“”应用相同的量词。我在尝试对“”应用相同的量词时出错。我不熟悉正则表达式,因此这些问题非常基本。@Thomas我更新了我的答案以回答您的问题。
@"(?<!https?:)/{2,}|\\{2,}"
Regex pattern = new Regex(@"(?<!https?:)/{2,}|\\{2,}");
Console.WriteLine(pattern.Replace(@"http://example.com", ""));
Console.WriteLine(pattern.Replace(@"abc//////////def", ""));
Console.WriteLine(pattern.Replace(@"abc\\\\\\\\\\def", ""));
http://example.com
abcdef
abcdef