我正在寻找一种正则表达式(?)方法来删除逗号之前和之后的空格。例如:
((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))
尽管进行了大量搜索,但我还是找不到满意的答案。
答案 0 :(得分:7)
您可以使用以下正则表达式:
s = Regex.Replace(s, " *, *", ",");
这将搜索前面和/或后跟任意数量空格的每个逗号,并用逗号替换逗号和空格。
这是一个演示:.NET Fiddle
答案 1 :(得分:5)
使用Regex
:
var result = Regex.Replace(
input,
@"\s*,\s*",
",");
使用string.Split
,Trim
和Join
:
var result = string.Join(",", input.Split(',').Select(s => s.Trim()).ToArray());
首先拆分字符串,修剪每个部分,再次连接在一起。比正则表达式快得多(在我的电脑上快了大约8倍)。
答案 2 :(得分:3)
一种方法是匹配@"\s*,\s*"
,并将其替换为","
:
var s = Regex.Replace(orig, @"\s*,\s*", ",");
\s
代表"空白"。它将替换空格,制表符,垂直制表符等。星号限定符是贪婪的,因此表达式将在逗号之前和之后匹配尽可能多的空格。