【问题标题】:How to remove the last repeating letters of a word如何删除单词的最后一个重复字母
【发布时间】:2012-12-15 06:17:52
【问题描述】:

如何使用 python regex 将 heyyyy 转换为 hey ? 这是我目前得到的

line="heyyy hoooow are you"
word_normalize=compile(r'(\w)\1+')
word_normalize.sub(r'\1\1',line)

打印hey how are you

我希望它打印出来:hoooow你在吗

我只想缩短结束字母而不是其他部分。

如果我想要这样的东西怎么办 hey hoow are you 即结束字符不重复,其他字符最多重复 2 次。

【问题讨论】:

    标签: python regex python-2.7


    【解决方案1】:

    使用\b 强制匹配位于单词的末尾。

    >>> re.sub(r'(\w)\1+\b', r'\1', line)
    'hey hoooow are you'
    

    要使内部字母最多重复两次,请使用 \B 添加另一个替换,这与 \b 相反:

    >>> re.sub(r'(\w)\1+\B', r'\1\1', re.sub(r'(\w)\1+\b', r'\1', line))
    'hey hoow are you'
    

    【讨论】:

    • 如果我想要这样的东西怎么办hey hoow are you 即结束字符不重复,其他字符最多重复 2 次。
    猜你喜欢
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    相关资源
    最近更新 更多