Python拆分复杂windows命令字符串

2024-10-01 09:25:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种拆分复杂windows命令字符串的方法,如:

"C:\\DOCUME~1\\<USER>~1\\LOCALS~1\\Temp\\is-M186E.tmp\\one.exe C:\\two.exe\" Track=\"0011011000\"\""

(一个进程用选项启动另一个进程)以获取第一个可执行文件名,例如one.exe

由于这些字符串来自不同的日志,它们可能非常复杂,我不知道目录名中是否会有空格。 有人知道怎么做吗

我在linux机器上使用python3

编辑:好的,对不起,我是误导,我不知道先验的文件扩展名。它可能不是.exe


Tags: 方法字符串命令进程iswindowsexeone
2条回答

首先,使用split('\')将字符串拆分为子字符串,并在循环中遍历生成的元组,搜索.exe,如下所示

for sub in str.split ('\\'):
    if '.exe' in sub:
        return sub

如果有许多可选扩展名,请更改条件以查找字符串列表,即(if sub[-3:] in [str1, str2]

import re  

st = r"C:\\DOCUME~1\\<USER>~1\\LOCALS~1\\Temp\\is-M186E.tmp\\one.exe C:\\two.exe  C:\\three.wav\" Track=\"0011011000\"\""

for different extentions add |\w+.ext to the pattern

pattern = r'\\(\w+\.exe|\w+\.wav)'

print(re.findall(pattern,st))

['one.exe', 'two.exe', 'three.wav']

相关问题 更多 >