-4

如果字符连续出现两次以上,我想删除所有出现的字符/和字符串,使用正则表达式。\这意味着,如果一个字符串包含abc////////////////////////def,我想全部/删除。但是,它不应该删除“ /in http://.

有人可以建议吗?

4

2 回答 2

3

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

var result = Regex.Replace("abc///def", "/{3,}", "");

更新:回复您的评论,该*字符是正则表达式中的元字符,具有特殊含义,因此您需要对其进行转义。试试这个:\*{3,}。如果要组合两个字符,可以使用字符类:[/*]{3,}. 字符类由方括号表示。在字符类中,您不需要转义元字符,这就是为什么我只是*在里面列出而不像之前那样转义它。

于 2013-11-01T05:24:51.180 回答
0

使用否定的后视断言

@"(?<!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
于 2013-11-01T05:31:08.400 回答