0

使用正则表达式,从以下字符串..

M8684977100203MOB20/14071M116980

我正在尝试过滤掉以下数字..

4977100203

我尝试了多种方法,但都失败了。有什么帮助吗?

4

1 回答 1

0

如果您在查找的 10 位数字之前总是有 3 位数字。这 10 位数字存储在组 \1 中:

M\d{3}(\d{10})

...您可以看到它在http://rubular.com/r/sIstkRnrWI中有效

M\d{3}([\d]+)M

... 用于在组 \1 中匹配的可变位数。http://rubular.com/r/34BH2QtAWK

顺便说一句,您将哪个应用程序用于正则表达式?您必须为此考虑转义字符。

使用 sed+bash:

echo 'M8684977100203MOB20/14071M116980' | sed -e 's/M[0-9]\{3\}\([^M]\+\).*/\1/g'

返回所需的字符串。

于 2013-10-25T01:51:15.307 回答