如果我有以下行,如何
- 只留下10-11位以"04"开头的长字符串。或"05年"。不要删除空行。
0409999999 012345678
012345678 0409999999
023456789 034566 0455555555
012345678 012345678
0299999999
所以上面的行应该看起来像:
0409999999
0409999999
0455555555
我建议使用pattern
bd{0,9}|0[45]d{8,9}b
解释:
b
-字边界
d{0,9}
-最多匹配9位
|
-交替
0
-匹配0
[45]
- match 4或5
Regex演示
编辑
更新后可以使用[ t]*(?!0[45]d{8,9})bd+[ t]*
不同之处在于,它使用负向前看来确保前面不是以04或05开头的10-11位数字。
[ t]
用于裁剪空格和制表符。
那么你只需要将它替换为空字符串。
b(?!04|05)d{1,9}b|bd{10,11}b