首页 > 解决方案 > 如何在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),它就不起作用。身体可以建议一些更改以进行更正吗?

标签: python

解决方案


使用正则表达式。

演示:

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)

推荐阅读