-1

我正在寻找使用正则表达式来匹配具有多个相同文本实例的字符串。例如,在这个例子中:

一些文字在这里 357313 更多文字在这里 654321

一些文字在这里 123456 更多文字在这里 123456

一些文字在这里 123456 更多文字在这里 654321

我希望它匹配第二个选项,而不是第一个和第三个选项。我对正则表达式相当陌生,但花了几个小时在网上寻找是否有解决此问题的方法。这些字符串是未知的,以便在搜索中使用它们,我需要使用正则表达式来确定它们是否匹配。

任何帮助或帮助将不胜感激!

谢谢!

4

2 回答 2

1

这匹配一行

[一些字符][一些数字][一些字符][与以前相同的数字][一些字符]

/.+(\d+).+$1.+/

那是你正在寻找的吗?

编辑:

/[^\d]+(\d+)[^\d]+$1[^\d]+/

使 [某些字符] 不是数字

于 2013-03-12T20:31:53.997 回答
0

我相信你想要类似下面的东西,它假设你想要一些文本的一个或多个匹配,然后是你的唯一字符串。

/^(.+123456){1,}$/

我刚刚意识到您实际上可能正在寻找不止一次包含相同字符序列的字符串。对我来说,这似乎不是一个适合正则表达式的问题。虽然对于更高级的正则表达式用户来说可能是可能的,但我会说编写如此复杂的正则表达式可能不是一个好主意。我建议您参考http://en.wikipedia.org/wiki/Longest_common_substring_problem,其中可能包含适用于此处的信息。

于 2013-03-12T20:20:42.033 回答