当前位置: 技术问答>linux和unix
正则表达式如何只匹配11位的数字?
来源: 互联网 发布时间:2017-05-22
本文导语: -bash-4.1$ echo "(138748783586,12345678912,555" | sed 's/d{11}/11111111111/g' (138748783586,12345678912,555 我向要的结果是: (138748783586,11111111111,555 求各位大神,该怎么写表达式 最好是试验成功的结果 | ...
-bash-4.1$ echo "(138748783586,12345678912,555" | sed 's/d{11}/11111111111/g'
(138748783586,12345678912,555
我向要的结果是:
(138748783586,11111111111,555
求各位大神,该怎么写表达式
最好是试验成功的结果
(138748783586,12345678912,555
我向要的结果是:
(138748783586,11111111111,555
求各位大神,该怎么写表达式
最好是试验成功的结果
|
如果楼主的意思是*只有*当一串数字的长度等于11的时候才做转换,下面的代码应该可以。
echo "(138748783586,12345678912,555" | sed -r 's/([^0-9])([0-9])/1 2/g' | sed -r 's/([^0-9]|^)[0-9]{11}([^0-9]|$)/1111111111112/g' | sed -r 's/ ([0-9])/1/g'
(138748783586,11111111111,555
echo "(138748783586,12345678912,555" | sed -r 's/([^0-9])([0-9])/1 2/g' | sed -r 's/([^0-9]|^)[0-9]{11}([^0-9]|$)/1111111111112/g' | sed -r 's/ ([0-9])/1/g'
(138748783586,11111111111,555
|
/匹配包含以love结尾的单词的行。
x{m}
重复字符x,m次,如:/0{5}/匹配包含5个o的行。
x{m,}
重复字符x,至少m次,如:/o{5,}/匹配至少有5个o的行。
x{m,n}
重复字符x,至少m次,不多于n次,如:/o{5,10}/匹配5--10个o的行。