正如标题所述,我想知道Objective-c或Swift中的NSRegularExpression是否支持部分不区分大小写的搜索?
即,模式是否会识别(?ismx)?如果没有,是否有这种无能的简短原因?
我真的很感激你的解释。
答案 0 :(得分:6)
来自NSRegularExpression Class Reference:
表2 正则表达式运算符
...
(?ismwx-ismwx:...)
标志设置。使用指定的标志启用或-disabled评估带括号的表达式。 ......
(?ismwx-ismwx)
标志设置。更改标志设置。更改适用于设置后的模式部分。例如,(?i)更改为不区分大小写的匹配。 ...
示例:
let pattern = "(?i)f(?-i)oo"
//Or: let pattern = "(?i:f)oo"
let regex = NSRegularExpression(pattern: pattern, options: nil, error: nil)!
let string : NSString = "foo, Foo, fOO"
regex.enumerateMatchesInString(string, options: nil, range: NSMakeRange(0, string.length)) {
(result, flags, stop) -> Void in
println(string.substringWithRange(result.range))
}
输出:
foo Foo
模式匹配“foo”和“Foo”,因为“f”匹配不区分大小写。 它与“fOO”不匹配,因为“oo”符合区分大小写。