Cocoa error 2048 when using NSRegularExpression in Cocoa

cocoa, ios, nsregularexpression, regex

Solution

are you trying to match a new line/line feed character? you've inserted a literal new line character into your regex... you need to instead insert the code for a newline. Try escaping as `\\n` etc.

edit:

You have to escape all special strings. For example you want your regex string to contain `\`+`r`, not a linefeed character. So you need to use `\\r` instead of `\r`.

i.e.

"(?<=#EXT[^\\r\\n]*[\\r\\n]+)[^#][^\\r\\n]+"

edit 2:

You cannot have unlimited length strings in your look-behind. So, no `*` and no `+` allowed. This is per the ICU regex reference. (`NSRegularExpression` uses ICU regex syntax.)

Problem

I'm building a regular expression for use in a parser in an iOS app. Here's my code: ``` NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?<=#EXT[^\r\n]*[\r\n]+)[^#][^\r\n]+" options:NSRegularExpressionAnchorsMatchLines error:&regexError ]; if (regexError) { NSLog(@"regexError: %@", regexError); return nil; } ``` From this answer. This gives out this error: `regexError: Error Domain=NSCocoaErrorDomain Code=2048 "The operation couldn’t be completed. (Cocoa error 2048.)" UserInfo=0x8e86670 {NSInvalidValue=(?<=#EXT[^` Cocoa error 2048 is an `NSFormattingErrorMinimum` according to the docs... But there's literally no further explanation. What does it mean?

Original source