当前位置: 首页 > 面试题库 >

如何使用re查找连续的,重复的字符

萧飞
2023-03-14
问题内容

我想在字符串中找到所有连续的,重复的字符块。例如,考虑以下内容:

s = r'http://www.google.com/search=ooo-jjj'

我想找到这个:wwwooojjj

我试图这样做:

m = re.search(r'(\w)\1\1', s)

但这似乎不像我期望的那样。有任何想法吗?

另外,如何在Bash中做到这一点?


问题答案:

((\w)\2{2,}) 匹配3个或更多连续字符:

In [71]: import re
In [72]: s = r'http://www.google.com/search=ooo-jjjj'
In [73]: re.findall(r'((\w)\2{2,})', s)
Out[73]: [('www', 'w'), ('ooo', 'o'), ('jjjj', 'j')]

In [78]: [match[0] for match in re.findall(r'((\w)\2{2,})', s)]
Out[78]: ['www', 'ooo', 'jjjj']

(\w) 匹配任何字母数字字符。

((\w)\2)匹配任何字母数字字符,后跟相同的字符,因为\2匹配组号2的内容。由于我嵌套了括号,因此组号2表示由匹配的字符\w

然后将它们放在一起, ((\w)\2{2,})匹配任何字母数字字符,然后再重复 2次或更多次 重复相同的字符。

总之,这意味着正则表达式要求字符重复3次或更多次。



 类似资料:
  • 问题内容: 在numpy数组中找到最大连续重复nan的最佳方法是什么? 例子: 输入1: 输出1: 输入2: 输出2: 问题答案: 这是一种方法- 这是一个改进的版本- 基准测试-

  • 问题内容: 用Java编写一个函数,该函数接受一个字符串数组,并且从字符串数组中仅返回那些具有重复的特定字母的字符串,例如:如果I / P为 那么O / P应该是 我可以使用解决 IS 没有使用正则表达式的方式 ,使之短? 问题答案: 您可以使用反向引用: 通过Debuggex进行可视化 Java示例: 印刷品:

  • 我正在进行密码检查。其中一个功能是查找输入的密码是否连续重复。我还没有代码,因为我不知道怎么做。 我发现这个正则表达式匹配两个或多个非连续的相同字符,但它只匹配重复的逗号。 以下是场景: 5236aaa121-重复模式,因为a连续重复3次 2312aa32aa-无重复字符 111111 ASD-重复模式,因为连续重复多次

  • 问题内容: 我正在致力于Twitter数据标准化。Twitter用户经常使用诸如此类的术语来强调“爱”一词。我希望通过替换重复的字符,直到获得合适的有意义的词,将这样的重复字符变成一个适当的英语单词(我知道通过这种机制我无法区分善与恶)。 我的策略是 识别此类重复字符串的存在。我会寻找两个以上相同的字符,因为可能没有一个英文单词包含两个以上的重复字符。 在诸如Wordnet之类的词典中搜索此类单词

  • 问题内容: 在一次采访中,要求用Java编写代码以显示没有连续重复字符的字符串。 例如:谷歌,苹果,亚马逊;它应该显示“ Amazon” 我写了代码,发现继续重复char。有什么算法或有效的方法可以找到它吗? 问题答案: class replace { 逻辑:将字符串中的字符与上一个字符进行匹配。 如果找到string [i] == string [i-1]。打破循环。选择下一个字符串。 如果您到

  • 问题内容: 如何在java中查找String中的重复字符? 问题答案: 创建一个 HashMap ,字符串的字符将作为键插入,其计数作为值插入。 如果 HashMap 已经包含字符,则将其计数加 1,否则将字符放入 HashMap。 如果 Char 的值大于 1,则表示它是该 String 中的重复字符。 Java程序在字符串中查找重复字符 当你运行上面的程序时,你会得到以下输出: