【问题标题】:How do I find non-null combination of ha and ho如何找到 ha 和 ho 的非空组合
【发布时间】:2016-03-22 22:14:52
【问题描述】:

我正在尝试查找 ha 和 ho 的任何非空组合,例如 haha​​hoho, ha, ho, hoha...

chat_words = sorted(set(w for w in nltk.corpus.nps_chat.words()))

[w for w in words.words() if re.search('^[haho]+$',w)]

我得到的结果是:

['a',
 'aa',
 'ah',
 'aha',
 'aho',
 'h',
 'ha',
 'hah',
 'hao',
 'ho',
 'o',
 'oh',
 'oho',
 'a']

【问题讨论】:

    标签: python regex nltk


    【解决方案1】:

    您的模式:'^[haho]+$' 匹配这四个单独字符的任意组合,h,a,h,o(3 因为 h 重复)。如果您想专门匹配haho,则必须使用| 令牌。

    [w for w in words.words() if re.search('^(?:ha|ho)+$',w)]
    

    【讨论】:

    • 如果我想要组合 haha​​hoho , ha, ho, hoha... 我该如何组合它们?
    • 我不太明白你的意思,但如果你在编辑中举个例子说明你的意思,我会很乐意接受。现在,此模式将匹配所有hahahohohahohoha
    • 当我运行你的代码时,我得到:'['ha', 'ho']' 我正在寻找这个 '[hahahoho, ha, ho, hoha...]'跨度>
    • @Sam - 他刚刚告诉你正则表达式将匹配其中任何一个。
    • 这些词甚至在你的词表中吗?因为如果他们是,这个模式会匹配他们。如果您正在执行列表推导,则不能期望不在列表中的项目出现在列表推导之后。
    猜你喜欢
    • 1970-01-01
    • 2017-10-23
    • 2010-11-22
    • 2022-08-21
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    相关资源
    最近更新 更多