c# - 使用正则表达式替换字符串

标签 c# regex string

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);

Demo.

很有可能,正则表达式本身并不是完成这项工作的正确工具。该字符串看起来是经过 URL 编码的,其中 %20 代表空格。在应用查找空格的正则表达式之前,您最好对字符串进行 URL 解码。

关于c# - 使用正则表达式替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39017112/

相关文章:

c# - 如何解决系统找不到指定文件的错误

c# - Response.WriteFile -- 写出一个字节流

c# - 为什么这个 string.Format() 不返回字符串,而是动态的?

c# - 如何从 Javascript 调用 OnPageIndexChanging?

用于验证日期格式 dd/mm/YYYY、dd-mm-YYYY、dd.mm.YYYY、dd mmm YYYY、dd-mmm-YYYY、dd/mmm/YYYY、dd.mmm.YYYY(带闰年支持)的正则表达式

regex - Powershell 通配符/正则表达式替换

c# - 需要正则表达式从字符串中删除 <a href ="xx">Name</a> 标签

c - 为什么我在字符串分词器函数上遇到段错误?

C# 为什么 Array.IndexOf 返回 -1

python - 替换多个相似的字符串