我有一系列电话号码,需要删除其中的前导零和数字之间的所有空格。
到目前为止,我有以下正则表达式:
^[^1-9A-Z]+
但是需要添加删除数字之间任何空格的功能。
例如我想要
012345 6789
成为:
123456789
任何帮助将不胜感激!
答案 0 :(得分:0)
答案 1 :(得分:0)
您用一个空字符串替换此模式:
^0+|\s+
正则表达式由^0+
和\s+
两部分组成。当任何这些部分匹配时,正则表达式将匹配。 ^0+
在字符串开头匹配一个或多个0。 \s+
匹配一个或多个空格字符。
答案 2 :(得分:0)
$ echo "012345 6789" | sed -e 's/^0*//' -e 's/\([0-9]*\)\s\([0-9]*\)/\1\2/g'
123456789
$ echo "012345 6789 876" | sed -e 's/^0*//' -e 's/\([0-9]*\)\s\([0-9]*\)/\1\2/g'
123456789876
$ echo "0012345 6789 876 54" | sed -e 's/^0*//' -e 's/\([0-9]*\)\s\([0-9]*\)/\1\2/g'
12345678987654
说明:
^0*
以匹配所有前导0 \s
表示空格[0-9]
以匹配任何单个数字[0-9]*
以匹配任何数字\(
和\)
用于分组\1
和\2
来选择组