gpt4 book ai didi

python - 匹配包含 2 个或更多 2 个字母元音序列的单词

转载 作者:太空狗 更新时间:2023-10-29 12:09:55 24 4
gpt4 key购买 nike

首先,我不确定是否应该开始一个新问题,因为已经有人回答了:Regex - Match words that contain 2 or more 2 letter sequences of vowels

(那是一年前)

但是,我认为它被误解了..

编写一个正则表达式来匹配包含 2 个或更多 2 个字母的元音序列的单词(例如 visionproof, st eamier, preequip)

给出的答案非常一致:

(\w*(?:[aeiou]{2})\w*(?:[aeiou]{2})\w*)

但是,该问题要求2 个字母的序列,然而,此正则表达式匹配(虚构的)单词,如:plooomdooom 和 leeezaaar,其中元音序列有超过 2 个元音

有什么解决办法吗?我认为 {2} 不允许元音重复超过两次

最佳答案

试试这个正则表达式:

\b(?:\w*?(?<![aeiou])[aeiou]{2}(?![aeiou])){2}\w*?\b

Click for Demo

解释:

  • \b - 单词边界
  • (?:\w*?(?<![aeiou])[aeiou]{2}(?![aeiou])){2}
    • \w*? - 匹配出现次数超过 0 次的单词字符 [a-zA-Z0-9_]
    • (?<![aeiou])[aeiou]{2}(?![aeiou]) - 匹配 2 个连续的元音。此匹配项之前和之后均不应有其他元音
    • {2} - 这将在测试字符串中匹配上述 2 个子序列 2 次
  • \w*? - 一旦测试字符串满足上述所有条件,我们现在有 2 次出现 2 个元音字母。现在我们可以匹配所有内容,直到单词结束。因此,匹配出现 0 次以上的单词字符
  • \b - 单词边界

关于python - 匹配包含 2 个或更多 2 个字母元音序列的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47994214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com