高级正则表达式,哪位大佬可以看懂的话,麻烦指点一下

import re
class RepeatReplacer(object):
    """
        在该方法中,一个字符指的是正则表达式分组中的先前字符。消除重复字符也被认为是标准化任务之一。
        RepeatReplacer类通过编译正则表达式和替换的字符串来工作,并使用 backreference.Repeat_regexp 来定义。
        它匹配可能是以零个或多个(\w *)字符开始,以零个或多个(\w *),或者一个(\w)其后面带有相同字符的字符而结束的字符。
    """

    def __init__(self):
        self.repeat_regexp = re.compile(r'(\w*)(\w)\2(\w*)\3')
        self.repl = r'\1\2\3'
        # self.repl1=r'\1'
        # self.repl2=r'\2'
        # self.repl3=r'\3'

    def replace(self, word):
        repl_word = self.repeat_regexp.sub(self.repl, word)
        # repl_word1 = self.repeat_regexp.sub(self.repl1, word)
        # repl_word2 = self.repeat_regexp.sub(self.repl2, word)
        # repl_word3 = self.repeat_regexp.sub(self.repl3, word)
        print('*'*10)
        print(repl_word)
        # print('1:',repl_word1)
        # print('2:',repl_word2)
        # print('3:',repl_word3)
        if repl_word != word:
            return self.replace(repl_word)
        else:
            return repl_word


replacer = RepeatReplacer()
print(replacer.replace('oohhhh'))
#  oh
print(replacer.replace('hottt'))
# hot
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值