我有兩個字符串,通過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)。你有一個令人信服的理由重新發明輪子嗎? –