我一直在尝试编造一个搜索数字模式的正则表达式。例如,正则表达式应该从 172564817256481725648 中提取 1725648。
目前,我有
(\\d+){1+}
,但它只是返回空白。
我不认为你会找到一个正则表达式来做到这一点。您需要更强大的机制来做您正在寻找的事情,其中之一就是Robin-Karp 算法。
这将适用于您的示例
^(\d+)\1+$
您可以从组 1 中获取找到的模式。
这将匹配相同数字序列的序列。\1
是对中匹配内容的反向引用(\d+)
。我+
在它后面放了一个,所以它需要匹配这个序列直到最后。^
将其锚定到字符串的开头和$
结尾。
但是你的要求不是很清楚。看到这个
(\d+).*\1
它缺少锚点,并允许.*
在搜索模式之间存在内容。但它只会找到字符串中的第一个序列,该序列稍后会在字符串中重复。
Hello1725648Foo987Bar987Foobar1725648
|||||||__________________|||||||
它会发现1725648
He987llo1725648FooBar987Foobar1725648
|||________________|||
它会发现987
123He987llo1725648FooBar987Foobar1725648
|________________________________|
它只会找到1