【问题标题】:python - regex to remove a if it occures after a bpython - 正则表达式删除 a 如果它发生在 a b 之后
【发布时间】:2018-05-26 14:06:16
【问题描述】:

我想删除文本中出现在元音字符之后的所有点。我该怎么做?

这是我希望拥有的代码:

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

意思是保留您匹配的任何元音并删除“。”旁边。

【问题讨论】:

    标签: python regex string python-3.x


    【解决方案1】:

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

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

    查看Python demoregex demo

    这里,([aeuio]) 形成一个capturing group,而替换模式中的\1 是一个numbered backreference,引用捕获到组1 中的文本。

    注意在反斜杠不构成转义序列的情况下使用原始字符串文字:r'\1' = '\\1'

    【讨论】:

    • 感谢您的出色回答,特别感谢您提供有关原始字符串的提示:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    相关资源
    最近更新 更多