【问题标题】:Python regex : detect a word with duplicated chars [closed]Python正则表达式:检测带有重复字符的单词[关闭]
【发布时间】:2015-07-02 04:38:21
【问题描述】:

我想知道我是否可以检测到“hey”这个词,但这种形式是:“heeeey” 我将如何在 python 中做到这一点? 我搜索了很多次,但我没有找到答案。

*我希望程序最终能像“嘿”一样得到它,我希望它理解“heeey”的意思是“嘿”。

【问题讨论】:

  • 可能是h(.)\1+y 之类的?
  • 不,我试过但不工作:/
  • 这个正则表达式是否也会使 meet 变为 met ?或 hellohelo 等?
  • 我认为它会......但如果我们向它添加例外,那么它不会......我在下面的答案中找到了答案。

标签: python regex artificial-intelligence words


【解决方案1】:
import re
p = re.compile(r'(.)\1+')
test_str = "heeeey"
subst = r"\1"

result = re.sub(p, subst, test_str)

您可以通过re.sub 来完成。这里我们捕获前面重复的任何character 并将所有的替换为\1。所以所有的重复都将消失。

查看演示。

https://regex101.com/r/cK4iV0/7#python

【讨论】:

  • 它工作正常,但它会是 'hy' 而不会是 'hey' 这是我现在的问题。感谢您的帮助。
  • 你能解释一下那个正则表达式吗?
  • 我不知道..我完全拿走了你的代码,结果是'hy'
  • @AmrEssam r 将禁止 python 解释其转义序列。
  • 我明白了。谢谢你的帮助:)
猜你喜欢
  • 2013-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-20
  • 2020-07-01
相关资源
最近更新 更多