【发布时间】:2021-05-07 09:49:41
【问题描述】:
给定一个字符串,测试是否有一个单词恰好出现了两次
| Input | Pass |
|---|---|
apple banana pineapple |
No |
apple banana apple pineapple |
Yes |
apple banana banana pineapple |
Yes |
apple banana apple pineapple apple |
No |
apple banana apple banana |
Yes |
apple banana banana apple pineapple apple |
Yes |
我尝试了类似的方法但没有用:(
^.*(\b\w+\b)(?:(?!\b\1\b).)*\b\1\b(?:(?!\b\1\b).)*$
有什么建议吗?我正在使用 pcre。
【问题讨论】:
-
如果有一对两个确切的词和三个其他的确切词怎么办?
-
@JvdV 应该可以通过,只要有一个词恰好出现2次即可
-
@HaoWu 这对我来说似乎是一个非常违反直觉的边缘情况,您的示例数据也没有涵盖。您可能只想在应用程序语言中形成一组单词并在那里进行检查,而不是使用正则表达式。
-
@TimBiegeleisen 抱歉,我在示例输入中添加了边缘情况。
-
顺便说一句,是PCRE2还是PCRE?