gpt4 book ai didi

regex - 匹配至少 4 个以相同字母开头的单词的正则表达式?

转载 作者:行者123 更新时间:2023-12-01 22:48:50 26 4
gpt4 key购买 nike

几个小时以来,我一直在尝试解决这个问题,但没有成功。任务是编写一个正则表达式来匹配至少四个以相同字母开头的单词。但!这些词不必一个接一个。

这个正则表达式应该能够匹配这样一行:

cat color coral chat

还有一个像这样的:

cat take boom candle creepy drum cheek 

谢谢!

到目前为止我已经有了这个正则表达式,但它只匹配按顺序排列的单词。

(\w)\w+\s+\1\w+\s+\1\w+\s+\1

最佳答案

如果行中只有可以与 \w 匹配的单词:

\b(\w)\w*(?:(?:\s+\w+)*?\s+\1\w*){3}

解释

  • \b 防止部分单词匹配的单词边界
  • (\w)\w* 捕获第 1 组中的单个单词字符,然后匹配可选的单词字符
  • (?: 非捕获组作为一个整体重复
    • (?:\s+\w+)*? 匹配 1+ 个空白字符和 1+ 个单词字符,以防单词不是以反向引用中捕获的字符开头
    • \s+\1\w* 匹配 1+ 个空白字符,对同一捕获字符和可选单词字符的反向引用
  • ){3}关闭非捕获组,重复3次

查看 regex demo

请注意,\s 也可以匹配换行符。

如果应该具有相同字符的单词应该至少有 2 个字符长(因为 (\w)\w+ 匹配 2 个或更多字符)

\b(\w)\w+(?:(?:\s+\w+)*?\s+\1\w+){3}

再看一个regex demo .

关于regex - 匹配至少 4 个以相同字母开头的单词的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74777163/

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