查找子串的第一次和最后一次出现并用re.sub()替换它们

时间:2017-06-07 20:12:05

标签: python-3.x

 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'或者'非'其中一个出现的第一个将被''取代。或者,如果字符串以eerest结尾,则结尾将替换为''

如何将所有这些写入一个,以便如果字符串以' non'以' est'结束它将替换它们并返回字符串的中间部分。此外,我无法使(r'(.*)e|er|est', r'\1''', s)工作,即使字符串以'est'结尾,它也只会替换最后一个e。我错过了什么或'|'不是要走的路?

1 个答案:

答案 0 :(得分:0)

您不必先检查马赫,也可以将两个替换链接起来。最后,正则表达式中的$表示字符串的结尾

 re.sub(r'e$|est$|er$' , '', re.sub(r'^o|^non','',s))