首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegEx替换字符串

RegEx替换字符串
EN

Stack Overflow用户
提问于 2013-04-03 21:59:36
回答 3查看 265关注 0票数 3

在继续解析字符串之前,我正在尝试对其进行规范化。基本上删除逗号前后的任何空格,如果两个或更多逗号仅由空格分隔,则用单个逗号替换。

代码语言:javascript
复制
var r = new Regex(@"(\s*,+\s*)");
var query = r.Replace("my reg, is a   disaster    everytime , i,try ,it,       yep, ,disaster.", ",");

输出应为:

代码语言:javascript
复制
my reg,is a   disaster    everytime,i,try,it,yep,disaster.

但它的特点:

代码语言:javascript
复制
my reg,is a   disaster    everytime,i,try,it,yep,,disaster.

任何帮助我们都将不胜感激

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-03 22:05:51

试一试

代码语言:javascript
复制
var r = new Regex(@"(\s|,)*,(\s|,)*");

基本上,将任意数量的逗号和空格替换为单个逗号,其中至少存在一个逗号。

票数 5
EN

Stack Overflow用户

发布于 2013-04-03 22:11:38

non-Regex解决方案:

代码语言:javascript
复制
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));

输出:

代码语言:javascript
复制
my reg,is a   disaster    everytime,i,try,it,yep,disaster.

它是如何工作的?通过","符号拆分原始字符串,丢弃空字符串,从每个字符串的开头/结尾修剪所有空格,使用相同的","连接非空字符串。

IMO,比RegEx更容易支持

票数 2
EN

Stack Overflow用户

发布于 2013-04-03 22:05:16

在原始字符串中,两个逗号(",,")之间有一个空格,但是正则表达式显示为,+,这意味着一个或多个连续的逗号。这行得通吗:(\s*(,\s+)+\s*)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15789476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档