regex - 匹配最长重复序列的正则表达式

标签 regex text full-text-search

我想匹配至少重复一次的最长序列

拥有:

T_send_ack-new_amend_pending-cancel-replace_replaced_cancel_pending-cancel-replace_replaced

结果应该是:pending-cancel-replace_replaced

最佳答案

试试这个

(.+)(?=.*\1)

查看 here on Regexr

这将匹配具有至少一个字符的任何字符序列,该字符稍后会在字符串中重复。

您需要存储匹配项,然后再决定哪一个是最长的。

此解决方案需要您的正则表达式支持反向引用和前瞻。

它将匹配具有至少一个字符 .+ 的任何字符序列并将其存储在组 1 中,因为它周围有括号。下一步是正向前瞻 (?=.*\1),如果捕获的序列再次出现在字符串中的稍后位置,则为真。

关于regex - 匹配最长重复序列的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9177647/

相关文章:

html - 是否可以通过css和html实现如下文字效果?

MySql全文搜索2个字符

具有键值的 C# foreach 循环

r - 将txt文件转换为dataframe

javascript - HTML 制作您自己的 <script type ="text/language">?

MySQL WHERE 中的多个 OR

mySQL MATCH 跨多个表

java - 为什么我的正则表达式在 shell 脚本中失败,尽管它在 jregex 中工作?

python - 用于解析字符串并根据运算符分隔获取输出的正则表达式

android - 测量要在 Canvas 上绘制的文本宽度(Android)