说我有这样的字符串:“1,2,3,11”
像这样的简单正则表达式会在字符串中找到一个数字:(?<=^|,)1(?=,|$)
- 这将正确地找到“1”(即不是“11”中的第一个“1”)。
但是,要从字符串中删除一个数字,在每个数字之间保留格式正确的逗号,我需要包含一个相邻的逗号。例如,匹配1,
,2,
或,11
。
所以诀窍是匹配一个逗号,在数字的 一侧,但忽略对面的逗号(如果有的话)。有人可以帮我这个吗?
Ed:应该提到这必须在代码中完成,而不是使用外部工具。
答案 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,?/