我正试图从字符串中提取像***.ini这样的子字符串。
例如,我有

000012: 378:210 File=test1.ini  Cmd:send command1
000512: 3378:990 File=test2.ini  Cmd:send command2 File=not.ini Cmd: include command

我需要在第一个“File=”之后提取子字符串,在第一个文件=***.ini之后提取子字符串,即“Cmd:…”直到结束。
所以我想要的结果是:
test1.ini
Cmd:send command1


test2.ini
Cmd:send command2 File=not.ini Cmd: include command

我试过:
re.match("(.*) File=(.*).ini(.*)Cmd:(.*)", line, re.M\re.I)

这对第一行很有效,但对第二行来说,
我得到:
test2.ini  Cmd:send command2 File=not.ini  #which is wrong, wanted is:

test.ini

Cmd: include command

任何人请帮忙。谢谢。
LJ公司

最佳答案

您可以将此正则表达式与re.findall函数一起使用:

\bFile=(.+?\.ini)\s+(Cmd:.*)

RegEx Demo
代码:
p = re.compile(ur'\bFile=(.+?\.ini)\s+(Cmd:.*)')
print re.findall(p, input_str)

关于python - 使用python正则表达式提取子字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35463769/

10-16 22:49