仅删除逗号前后的空格
本文关键字:空格 删除 | 更新日期: 2023-09-27 18:19:58
我正在寻找一种只删除逗号前后空格的regex(?)方法。示例:
((100 0, 101 0, 101 1, 100 1, 100 0) , (100.2 0.2, 100.8 0.2, 100.8 0.8, 100.2 0.8, 100.2 0.2))
预期结果:
((100 0,101 0,101 1,100 1,100 0),(100.2 0.2,100.8 0.2,100.8 0.8,100.2 0.8,100.2 0.2))
尽管进行了无数次搜索,我仍然找不到令人满意的答案。
您可以使用以下正则表达式:
s = Regex.Replace(s, " *, *", ",");
这将搜索前面和/或后面有任意数量空格的每个逗号,并仅用逗号替换逗号和空格。
这里有一个演示:.NET Fiddle
使用Regex
:
var result = Regex.Replace(
input,
@"'s*,'s*",
",");
使用string.Split
、Trim
和Join
:
var result = string.Join(",", input.Split(',').Select(s => s.Trim()).ToArray());
先把绳子分开,把每一部分都修剪整齐,然后再连接在一起。比正则表达式快得多(在我的电脑上大约快8倍)。
一种方法是匹配@"'s*,'s*"
,并将其替换为","
:
var s = Regex.Replace(orig, @"'s*,'s*", ",");
's
代表"空白"。它将替换空格、制表符、垂直制表符等。星号限定符是贪婪的,因此表达式将尽可能多地匹配逗号前后的空格。