RegEx替换字符串
本文关键字:字符串 替换 RegEx | 更新日期: 2023-09-27 18:07:24
在我继续并解析它之前,我试图规范化字符串。基本上去掉逗号前后的空格,如果两个或多个逗号之间只有空格,则用一个逗号代替。
var r = new Regex(@"('s*,+'s*)");
var query = r.Replace("my reg, is a disaster everytime , i,try ,it, yep, ,disaster.", ",");
输出应该是:
my reg,is a disaster everytime,i,try,it,yep,disaster.
但它:
my reg,is a disaster everytime,i,try,it,yep,,disaster.
感谢您的帮助
Try
var r = new Regex(@"('s|,)*,('s|,)*");
基本上,用一个逗号替换任意数量的逗号和空格,其中至少存在一个逗号。
non-Regex
解:
var dirty = "my reg, is a disaster everytime , i,try ,it, yep, ,disaster.";
var clean = string.Join(",",
dirty.Split(new[] {","}, StringSplitOptions.RemoveEmptyEntries)
.Select(x => x.Trim())
.Where(x => x.Length > 0));
输出:my reg,is a disaster everytime,i,try,it,yep,disaster.
它是如何工作的?通过","
符号拆分原始字符串,丢弃空字符串,从每个字符串的开始/结束修剪所有空白,使用相同的","
连接非空字符串。
IMO,比RegEx
更容易支持
在原始字符串中,两个逗号(",,")之间有一个空格,但正则表达式表示,+
,这意味着一个或多个连续的逗号。('s*(,'s+)+'s*)
?