我有两个字符串,通过10改变我的名字正则表达式和运营商重叠匹配
chriscattano
christiancattano
我有3个长度字符串的长度,这两个字符串共享
(chr)(hri)(ris)(cat)(att)(tta)(tan)(ano)(chri)(hris)(catt)(atta)(ttan)(tano)(chris)(catta)(attan)(ttano)(cattan)(attano)(cattano)
我试图把这些成正则表达式搜索,将成功匹配单词chris
和cattano
,以便我可以做一个.replace
,并将具有sass类的<span>
应用于比赛结果。
如果格式化我的正则表达式为:
/(chr)|(hri)|(ris)|(cat)|(att)|(tta)|(tan)|(ano)|(chri)|(hris)|(catt)|(atta)|(ttan)|(tano)|(chris)|(catta)|(attan)|(ttano)|(cattan)|(attano)|(cattano)/g
我设法相互匹配chr
和cattan
,但我无法弄清楚如何突出chris
和cattano
;我错过了is
和o
。
这个例子可以改变很大,因为我只用我的名字来测试和完善功能。它最终将用于电子邮件地址,名称和地址。所以改变捕获组的顺序(如果这可以解决这个问题的话)并不是一个解决方案,当它变得更加动态化时,我们将无法控制捕获组放入正则表达式对象时的顺序,以及作为参数馈送到.replace()
方法。
这里是一个正则表达式,我一直在尝试各种事情来让它突出显示我需要的匹配。希望有人能够鼓励它工作?
http://www.regexpal.com/?fam=97413
您的最终目标是什么?你是否试图编写代码来突出显示两个字符串的常见子字符串?我有一种感觉,正则表达式在这里不是正确的解决方案。 –
@Jordan是的,当给定两个字符串时,我有提取3和10长度之间的所有共享子字符串的代码。想法是那些子字符串然后将被传递给用作.replace()方法中的参数的正则表达式对象ad 。 .replace()方法会用包含指定背景颜色的sass类的span来替换匹配的单词。它看起来与h.replace类似(regexObj,' $ {regexObj}'); – Chris
订单是否重要? 'chriscattano'和'cattanoXYZchris'会产生什么结果?在枚举常用子字符串时有[很多现有工作](https://www.google.com/search?q=algorithm+find+all+common+substrings)。你有一个令人信服的理由重新发明轮子吗? –