【发布时间】:2018-04-07 16:02:20
【问题描述】:
我有这个正则表达式
(\b(\S+\s+){1,10})\1.*MY
我想将第 1 组从
中捕获“名称”The name is is The name MY
我现在得到“是”。
名称可以是任意长度的任意单词。 它不必在一开始。 它只需要2或3个字。它可以少于 10 个单词。 唯一可以确定的是,这将是最后一组重复的单词。 例子:
The name is Anthony is is The name is Anthony - “The name is Anthony”。
印度是我的国家所有印度人都是印度是我的国家-“印度是我的国家”
Times of India Alphabet Google 是公司 Alphabet Google 食堂 - “Alphabet Google”
【问题讨论】:
-
什么是“名字”?它是一个随机单词吗?假定的“名称”的长度是否总是小于 10 个字符?
-
请提供一些更全面的示例输入和输出。
-
很难从一个例子中看出你真正需要什么。平凡的
(The name)(\s\S)*\s\1\sMY与您的示例相匹配。如果这是不可接受的,为什么不呢?一个样本中可以有多少其他重复的字符串?我们可以依赖位置吗,比如^((\S+\s)+)(\S\s)*\1.*MY或((\S+\s)+)(\S\s)+\1\sMY? -
名字可以是任意长度
-
请edit您的问题与这些澄清。不过,如何概括这一点仍不完全清楚。
标签: regex regex-group backreference