java - 如何找到在字符串中至少出现两次且不重叠的任意两个字母对

标签 java ruby regex

如何找到在字符串中至少出现两次且不重叠的任意两个字母对?

例如,在字符串“adjkoedjeoieadkkji”中,我应该找到 ad,因为它出现了两次。

在字符串“adjkobbbeoieadkkji”中,我不应该找到 bb,因为两次出现重叠。

我尝试过使用 /^([a-z]{2}).*(\1)$/ 它仅匹配 'abab' 仍在尝试从我这边请帮助我正则表达式专家

最佳答案

您的字符串不一定在找到 \1 后结束。所以你什么也得不到。您可以使用

^.*?([a-z]{2}).*?(\1).*$

<强> Regex Demo

关于java - 如何找到在字符串中至少出现两次且不重叠的任意两个字母对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37454189/

相关文章:

ruby-on-rails - 如何在不使用ruby数据库的情况下保存变量

regex - awk split()函数使用正则表达式还是精确的字符串常量?

javascript - JavaScript 中的正则表达式 - 未正确过滤

java - 为什么我会收到 "type not a registered entity"的 PersistenceException?

java - Spring Neo4j CGLIB需要处理@Configuration类

ruby - 如何全局配置 RSpec 以保持 '--color' 和 '--format specdoc' 选项打开

ruby-on-rails - 禁用特定的 rake 任务组

C++11 正则表达式分组

java - 如何让 getIntent() 在使用 Intent 集调用 Activity 后返回 null

java - 将 JobIntentService 绑定(bind)到 Activity