python - 如何在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)
,它就不起作用。身体可以建议一些更改以进行更正吗?
解决方案
使用正则表达式。
演示:
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)