【发布时间】:2012-01-25 00:29:12
【问题描述】:
我想创建一个正则表达式,这样当我将字符串与字符串数组进行比较时,会返回匹配项,而正则表达式会忽略某些字符。
这是一个例子。考虑以下名称数组:
{
"Andy O'Brien",
"Bob O'Brian",
"Jim OBrien",
"Larry Oberlin"
}
如果用户输入“ob”,我希望应用程序将正则表达式谓词应用于数组,并且上述数组中的所有名称都会匹配(例如,忽略 ')。
我知道我可以运行两次匹配,第一次针对每个名称,第二次针对每个名称,并从字符串中删除忽略的字符。我宁愿通过单个正则表达式完成此操作,因此我不需要两次传递。
这可能吗?这是一个 iOS 应用程序,我正在使用 NSPredicate。
编辑:使用说明
从最初的答案中,我意识到我并不清楚。上面的例子是一个具体的例子。我需要一个通用解决方案,其中名称数组是一个具有不同名称的大型数组,并且我匹配的字符串由用户输入。所以我不能硬编码像 [o]'?[b] 这样的正则表达式。
另外,我知道如何进行不区分大小写的搜索,所以不需要答案来关注它。只需要一个解决方案来忽略我不想匹配的字符。
【问题讨论】:
-
由于正则表达式依次应用于每个字符串,您可以简单地从字符串中删除所有要“忽略”的字符,然后将正则表达式应用于修改后的字符串。
标签: objective-c ios regex nspredicate