Java 在正则表达式中捕获重复的逗号分隔字符串

Java 在正则表达式中捕获重复的逗号分隔字符串,java,regex,backreference,Java,Regex,Backreference,我需要捕获一行(或一个输入字符串)中的多个可用短语。 假设输入为=“这是描述,这是描述” 因此,我需要检测字符串“this is description”在输入中重复了两次。 这是我到目前为止试过的正则表达式 (.*).*\1 但它匹配没有精确重复的输入,如“这是描述,更多文本,这是描述”以查找逗号分隔字符串的重复对: (.+?),\1 要查找任意数量的重复值(逗号分隔): 这些方法是在第一个逗号前进行非贪婪匹配,然后在逗号后重复匹配。请发布一个。为什么不起作用?正则表达式将在字符串中显示

我需要捕获一行(或一个输入字符串)中的多个可用短语。
假设输入为=“这是描述,这是描述”
因此,我需要检测字符串“this is description”在输入中重复了两次。

这是我到目前为止试过的正则表达式

(.*).*\1
但它匹配没有精确重复的输入,如“这是描述,更多文本,这是描述”

以查找逗号分隔字符串的重复对:

(.+?),\1
要查找任意数量的重复值(逗号分隔):


这些方法是在第一个逗号前进行非贪婪匹配,然后在逗号后重复匹配。

请发布一个。为什么不起作用?正则表达式将在字符串中显示的模式中告诉您。在您的示例中,您在一个字符串中人工声明了两个短语。你的代码怎么会知道这一点?您应该首先将不同的短语分离成各自的字符串,然后单独测试每个字符串。谢谢,但这些字符串也捕获了我的要求,例如“这是测试,这不是测试”
(.+?)(?:,\1)+