加入收藏 | 设为首页 | 会员中心 | 我要投稿 商洛站长网 (https://www.0914zz.com/)- AI应用、CDN、边缘计算、云计算、物联网!
当前位置: 首页 > 编程开发 > Python > 正文

Python:如何在字符串中剪切超过2个相等字符的序列

发布时间:2021-01-24 07:28:42 所属栏目:Python 来源:互联网
导读:我正在寻找一种有效的方法来排除一个字符串,使得超过2个相同字符的所有序列在前2个之后被切断. 一些输入输出示例是: hellooooooooo - helloowoooohhooooo - woohhoo 我正在循环播放角色,但它有点慢.有没有人有其他解决方案(regexp或其他) 编辑:当前代码: w

我正在寻找一种有效的方法来排除一个字符串,使得超过2个相同字符的所有序列在前2个之后被切断.

一些输入>输出示例是:

hellooooooooo -> helloo
woooohhooooo -> woohhoo

我正在循环播放角色,但它有点慢.有没有人有其他解决方案(regexp或其他)

编辑:当前代码:

word_new = ""
        for i in range(0,len(word)-2):    
            if not word[i] == word[i+1] == word[i+2]:
                word_new = word_new+word[i]
        for i in range(len(word)-2,len(word)):
            word_new = word_new + word[i]

解决方法

编辑:应用有用的评论后
import re

def ReplaceThreeOrMore(s):
    # pattern to look for three or more repetitions of any character,including
    # newlines.
    pattern = re.compile(r"(.)1{2,}",re.DOTALL) 
    return pattern.sub(r"11",s)

(这里的原始回复)
尝试这样的事情:

import re

# look for a character followed by at least one repetition of itself.
pattern = re.compile(r"(w)1+")

# a function to perform the substitution we need:
def repl(matchObj):
   char = matchObj.group(1)
   return "%s%s" % (char,char)

>>> pattern.sub(repl,"Foooooooooootball")
'Football'

(编辑:商洛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读