Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用正则表达式删除部分字符串_Python_Regex_Python 3.x - Fatal编程技术网

在python中使用正则表达式删除部分字符串

在python中使用正则表达式删除部分字符串,python,regex,python-3.x,Python,Regex,Python 3.x,我有文本文件,其中包含以下格式的信息 2018/03/21-17:08:48.638553 508 7FF4A8F3D704 snononsonfvnosnovoosr 2018/03/21-17:08:48.985053 346K 7FE9D2D51706 ahelooa afoaona woom 2018/03/21-17:08:50.486601 1.5M 7FE9D3D41706 qojfcmqcacaeia 2018/03/21-17:

我有文本文件,其中包含以下格式的信息

2018/03/21-17:08:48.638553  508     7FF4A8F3D704     snononsonfvnosnovoosr
2018/03/21-17:08:48.985053 346K     7FE9D2D51706     ahelooa afoaona woom
2018/03/21-17:08:50.486601 1.5M     7FE9D3D41706     qojfcmqcacaeia
2018/03/21-17:08:50.980519  16K     7FE9BD1AF707     user: number is 93823004
2018/03/21-17:08:50.981908 1389     7FE9BDC2B707     user 7fb31ecfa700
2018/03/21-17:08:51.066967    0     7FE9BDC91700     Exit Status = 0x0
2018/03/21-17:08:51.066968    1     7FE9BDC91700     std:ZMD:
预期结果

我想删除字符串的一部分,直到第三个空格(即7FF4A8F3D704)。结果应该是这样的

snononsonfvnosnovoosr
ahelooa afoaona woom
qojfcmqcacaeia
user: number is 93823004
user 7fb31ecfa700
Exit Status = 0x0
std:ZMD:
snononsonfvnosnovoosr
ahelooa afoaona woom
qojfcmqcacaeia
user: number is 93823004
user 7fb31ecfa700
Exit Status = 0x0
std:ZMD:
解决方案

我可以删除带有以下代码的“2018/03/21-17:08:48.638553”。但我试图用“”替换整个部分


由于前3列值中似乎没有空格,请匹配
\S+\S+
以获取列值及其右侧关联的空格填充,然后重复3次:

output = re.sub(r'(?m)^(?:\S+\s+){3}', '', input)

如果这是您的文本文件的确切结构,为什么不直接删除前n个不感兴趣的字符

for line in txt.splitlines():
    print(line[53:])


#snononsonfvnosnovoosr
#ahelooa afoaona woom                                      
#qojfcmqcacaeia                                             
#user: number is 93823004                                    
#user 7fb31ecfa700                                      
#Exit Status = 0x0                                           
#std:ZMD:                

另一种使用
re.split()
(并将拆分限制为3次拆分)的方法。 这假定前三个字段中没有空格

它在一个或多个空格上拆分

for data in L.splitlines():
    print(re.split(r'\s+', data, 3)[-1])
输出:

snononsonfvnosnovoosr
ahelooa afoaona woom
qojfcmqcacaeia
user: number is 93823004
user 7fb31ecfa700
Exit Status = 0x0
std:ZMD: