如何在python中的多行字符串中的两个子字符串之间提取字符串的一部分

时间:2018-06-13 09:34:59

标签: python

我试图在两个字符串标识符之间提取字符串的一部分。如果在第一行中进行搜索但是对于其他行中的子字符串不起作用,则该技术有效。

字符串是这样的:

mystring="""abc jhfshf iztzrtzoi hjge);
kjsyh ldjfsj sjsdgj sodfsd);
sjfhsdvh isdjgdfg sdgjhg isjdgg);
ghdcbnv jgdfkjg fdjgjfdgj);
vgdfnkvgfd dfgjfdjgjöfd);
end"""

到目前为止,我有以下代码。

startString='jhfshf'
endString=';'
search_var=mystring[mystring.find(startString)+len(startString):mystring.find(endString)]
print(search_var)

我得到正确的输出,如iztzrtzoi hjge)

但是如果我在(startString=ldjfsj)这样的第二行搜索字符串,它就不起作用了。身体可以建议一些改变吗?

1 个答案:

答案 0 :(得分:2)

使用Regex。

<强>演示:

import re
mystring="""abc jhfshf iztzrtzoi hjge);
kjsyh ldjfsj sjsdgj sodfsd);
sjfhsdvh isdjgdfg sdgjhg isjdgg);
ghdcbnv jgdfkjg fdjgjfdgj);
vgdfnkvgfd dfgjfdjgjöfd);
end"""

m = re.search("(?<=jhfshf).*?(?=\;)", mystring)
if m:
    print( m.group() )

<强>输出:

 iztzrtzoi hjge)