我试图在两个字符串标识符之间提取字符串的一部分。如果在第一行中进行搜索但是对于其他行中的子字符串不起作用,则该技术有效。
字符串是这样的:
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)
这样的第二行搜索字符串,它就不起作用了。身体可以建议一些改变吗?
答案 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)