As the title states, I wonder if NSRegularExpression in both Objective-c or Swift, support partial case insensitive search?
Namely, will the pattern recognize (?ismx)? If not, is there a brief reason for this inability?
I truly appreciate your explanation.
From the NSRegularExpression Class Reference:
Table 2 Regular Expression Operators
...
(?ismwx-ismwx:...)
Flag settings. Evaluate the parenthesized expression with the specified flags enabled or -disabled. ...
(?ismwx-ismwx)
Flag settings. Change the flag settings. Changes apply to the portion of the pattern following the setting. For example, (?i) changes to a case insensitive match. ...
Example:
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))
}
Output:
foo Foo
The pattern matches "foo" and "Foo" because the "f" is matched case insensitive. It does not match "fOO" because "oo" is matched case sensitive.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With