我想創建一個正則表達式,以便當我將字符串與字符串數組進行比較時,匹配與正則表達式一起返回而忽略某些字符。是否有可能在與正則表達式匹配時忽略字符串中的字符
下面是一個例子。考慮名字的下面的數組:
{
"Andy O'Brien",
"Bob O'Brian",
"Jim OBrien",
"Larry Oberlin"
}
如果用戶輸入「肥胖」,我想應用到正則表達式謂詞應用到陣列以及上述所有陣列中的名稱將匹配(例如: '被忽略)。
我知道我可以兩次運行匹配,首先針對每個名稱,然後針對每個名稱使用從字符串中去除的忽略字符。我寧願這個由一個正則表達式完成,所以我不需要兩次通過。
這可能嗎?這是針對iOS應用的,我使用的是NSPredicate。
編輯:澄清使用
從最初的答案,我意識到,我並不清楚。上面的例子是一個特定的例子。我需要一個通用的解決方案,其中名稱數組是一個具有不同名稱的大型數組,我匹配的字符串由用戶輸入。所以我不能像[o]'[b]那樣硬編碼正則表達式。
此外,我知道如何做不區分大小寫的搜索,所以不需要專注於此的答案。只需要一個解決方案來忽略我不想匹配的字符。
我發現一個合理的解決方案給予我的實現,通過源通過消除我不想匹配的字符的變化。感謝您的輸入。 – XJones
這對我來說似乎過分了。爲什麼不採用搜索字符串,並指出「忽略」字符可能在每個字符後出現0或1次?例如,如果用戶輸入字符串「oleary」,則可以將其轉換爲正則表達式「o'?l'?e'?a'?r'?y'?'。我想這會對性能產生負面影響,但我不明白爲什麼它不起作用。 – octern
這就是問題所在。這是一段需要儘可能快的代碼。我現在的解決方案在這方面似乎很好。謝謝。 – XJones