text = "The%20%20%20%20%20%20%20%20%20%20Park"
text = "The%20Park"
即使文本有一个 %20
或多个,它也应该有一个字符 '-'
例如 The-Park
var regex = new Regex("%20(%20)?");
var output = regex.Replace("The%20%20%20%20%20%20%20%20%20%20Park", "-");
output = The----Park
但输出应该是 The-Park
最佳答案
你非常接近 - 使用 (%20)+
表达式来匹配一次或多次出现的 %20
:
var regex = new Regex("(%20)+");
var output = regex.Replace("The%20%20%20%20%20%20%20%20%20%20Park", "-");
Console.WriteLine(output);
很有可能,正则表达式本身并不是完成这项工作的正确工具。该字符串看起来是经过 URL 编码的,其中 %20
代表空格。在应用查找空格的正则表达式之前,您最好对字符串进行 URL 解码。
关于c# - 使用正则表达式替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39017112/