我想创建一个正则表达式,以便当我将字符串与字符串数组进行比较时,匹配与正则表达式一起返回而忽略某些字符。是否有可能在与正则表达式匹配时忽略字符串中的字符
下面是一个例子。考虑名字的下面的数组:
{
"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