如果我有以下几行,如何1.只保留以“04”或“05”开头的10-11位字符串。不要删除空行。
0409999999 012345678 012345678 0409999999 023456789 034566 0455555555 012345678 012345678 0299999999
因此上面的行应该如下所示:
0409999999 0409999999 0455555555
r1zk6ea11#
我建议用
\b\d{0,9}|0[45]\d{8,9}\b
说明:\b-字边界\d{0,9}-最多匹配9位数字|-交替0-按字面匹配0[45]-匹配4或5Regex demo
\b
\d{0,9}
|
0
[45]
更新后,您可以使用[ \t]*(?!0[45]\d{8,9})\b\d+[ \t]*这里的不同之处在于它使用负向前看来确保前面的不是以04或05开始的10 - 11位数字。[ \t]用于修剪空间和制表符。然后你只需要用空字符串替换它。
[ \t]*(?!0[45]\d{8,9})\b\d+[ \t]*
[ \t]
mrfwxfqh2#
\b(?!04|05)\d{1,9}\b|\b\d{10,11}\b
2条答案
按热度按时间r1zk6ea11#
我建议用
说明:
\b
-字边界\d{0,9}
-最多匹配9位数字|
-交替0
-按字面匹配0[45]
-匹配4或5Regex demo
更新后,您可以使用
[ \t]*(?!0[45]\d{8,9})\b\d+[ \t]*
这里的不同之处在于它使用负向前看来确保前面的不是以04或05开始的10 - 11位数字。
[ \t]
用于修剪空间和制表符。然后你只需要用空字符串替换它。
mrfwxfqh2#