python 自定义函数
import re
def cut_out_str_by_2kw(s:str,kw1:str,kw2:str) -> list:
'''
更新于2021.05.13
彡
s为不含换行符和制表符的字符串。
本函数用于从字符串中无重复地截取两个关键字之间的字段且截取字段不包含第二个关键字,返回列表,
若关键字中有一个为空而另一个在字符串中,则空的关键字以非空关键字及字符串的前后两端为界,
若关键字非空且不在字符串中则返回空列表。
若关键字非空虽然在字符串中,但有连体现象或单个组反序,亦返回空列表。
若两个关键字非空且相同,但是字符串中只出现一个关键字时,则会报错
'''
n2 = len(kw2)
if kw1 + kw2 == '':
return [s]
elif kw1 == '':
li0 = []
for i in re.findall(kw1+'.*?'+kw2,s):
li0.append(i[:-n2])
return li0
elif kw2 == '':
if s[-n2:] == kw2:
pass
else:
s = s + kw1
return cut_out_str_by_2kw(s,kw1,kw1)
else:
try:
s = re.search(kw1+'.*'+kw2,s).group(0)
li1 = re.search(kw1+'.*?'+kw2,s).group(0)[:-n2]
s = s[len(li1)