我想匹配至少重复一次的最长序列
拥有:
T_send_ack-new_amend_pending-cancel-replace_replaced_cancel_pending-cancel-replace_replaced
结果应该是:pending-cancel-replace_replaced
最佳答案
试试这个
(.+)(?=.*\1)
这将匹配具有至少一个字符的任何字符序列,该字符稍后会在字符串中重复。
您需要存储匹配项,然后再决定哪一个是最长的。
此解决方案需要您的正则表达式支持反向引用和前瞻。
它将匹配具有至少一个字符 .+
的任何字符序列并将其存储在组 1 中,因为它周围有括号。下一步是正向前瞻 (?=.*\1)
,如果捕获的序列再次出现在字符串中的稍后位置,则为真。
关于regex - 匹配最长重复序列的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9177647/