python - 正则表达式删除一个如果它发生在b之后

时间:2017-12-12 19:33:53

标签: python regex string python-3.x

我想删除元音字符后出现的文本中的所有点。我怎么能这样做?

以下是我希望的代码:

string = re.sub('[aeuio]\.', '[aeuio]', string)

意思就是保持你所匹配的元音并删除'。'在它旁边。

1 个答案:

答案 0 :(得分:4)

捕获元音并替换为反向引用:

import re
s = "Se.hi.mo."
s = re.sub(r'([aeuio])\.', r'\1', s)
print(s) # => Sehimo

请参阅Python demoregex demo

此处,([aeuio])形成capturing group,替换模式中的\1numbered backreference引用捕获到第1组的文本。

请注意反斜杠不会形成转义序列的原始字符串文字的使用:r'\1' = '\\1'