我需要删除列表中多余的信息。基本上,我想删除第一个空格之后和以 31117 开头的数字之前的所有内容。以下是示例:
0300045956 31117016167830
0198730888 : 31117005925115
0208022376 (碱性纸) $26.00 31117005925149
0918526582;0918526590(平装)31117005925677
我希望它看起来像这样:
0300045956 31117016167830
0198730888 31117005925115
0208022376 31117005925149
0918526582 31117005925677
答案1
您要求的解决方案是使用正则表达式。您想要查找:
([^ ]*)(.*)(31117*)
并将其替换为:
\1 \3
这定义了三个组(每个组都括在括号中)。第一个组是零个或多个非空格;所以这是所有以第一个空格开头的字符,但不包括第一个空格。第二个组可以是任意数量的字符,只要它不以 31117 开头;所以这是第一个空格和其后的所有内容,只要它不是 31117。第三个组是任何以 31117 开头的内容。
请注意@DavidPostill 是正确的。删除第一个空格之后和 31117 之前的所有内容:
0918526582;0918526590 (pbk.) 31117005925677
确实是:
0918526582;0918526590 31117005925677
如果你错误地陈述了你想要的东西但你确实想要这个:
0918526582;0918526590 (pbk.) 31117005925677
变成这样:
0918526582 31117005925677
然后需要修改正则表达式如下:
([^; ]*)(.*)(31117*)
这会在第一组中添加一个分号:任意数量的任意字符(不是空格或分号)。