import re
def x(s):
if re.match(r'^o|non', s):
return re.sub(r'o|non', '', s, count=1)
elif re.search(r'e|er|est$', s):
return re.sub(r'(.*)e|er|est', r'\1''', s)
因此,如果字符串以' o
'或者'非'其中一个出现的第一个将被''
取代。或者,如果字符串以e
,er
或est
结尾,则结尾将替换为''
。
如何将所有这些写入一个,以便如果字符串以' non'以' est'结束它将替换它们并返回字符串的中间部分。此外,我无法使(r'(.*)e|er|est', r'\1''', s)
工作,即使字符串以'est'
结尾,它也只会替换最后一个e。我错过了什么或'|'
不是要走的路?
答案 0 :(得分:0)
您不必先检查马赫,也可以将两个替换链接起来。最后,正则表达式中的$
表示字符串的结尾
re.sub(r'e$|est$|er$' , '', re.sub(r'^o|^non','',s))