4

假设我有一个这样的字符串:“1,2,3,11”

像这样的简单正则表达式将在字符串中找到一个数字:(?<=^|,)1(?=,|$)- 这将正确找到“1”(即不是“11”中的第一个“1”)。

但是,要从字符串中删除一个数字,并在每个数字之间使用逗号正确格式化字符串,我只需要包含一个相邻的逗号。例如,1,匹配2,,11

所以诀窍是在数字的任一侧匹配一个逗号,但忽略另一侧的逗号(如果有的话)。有人可以帮我弄这个吗?

Ed:应该提到这必须在代码中完成,而不是使用外部工具。

4

2 回答 2

5

从字符串中删除一个数字,在每个数字之间用逗号正确格式化字符串

尝试使用以下regex并替换为空字符串。

\b1\b,|,\b1\b$

使用sed

sed -e 's/\b1\b/,/g' -e 's/,,//g'
于 2013-11-07T03:49:23.007 回答
0

对于 3(例如),您可以使用(替换):

 /\b3\b,?/
于 2013-11-07T03:25:46.757 回答