用于从逗号分隔的字符串中删除项目的正则表达式?

时间:2013-11-07 02:53:51

标签: regex

说我有这样的字符串:“1,2,3,11”

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

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

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

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

2 个答案:

答案 0 :(得分:5)

  

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

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

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

使用sed

sed -e 's/\b1\b/,/g' -e 's/,,//g'

答案 1 :(得分:0)

for 3(例如),你可以使用(with replace):

 /\b3\b,?/