OGeek|极客世界-中国程序员成长平台

标题: ios - 在 Cocoa 中使用 NSRegularExpression 时出现 Cocoa 错误 2048 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 17:26
标题: ios - 在 Cocoa 中使用 NSRegularExpression 时出现 Cocoa 错误 2048

我正在构建一个用于 iOS 应用程序解析器的正则表达式。这是我的代码:

NSRegularExpression *regex =
[NSRegularExpression regularExpressionWithPattern"(?<=#EXT[^\r\n]*[\r\n]+)[^#][^\r\n]+"
                                          options:NSRegularExpressionAnchorsMatchLines
                                            error:&regexError
 ];
if (regexError) {
    NSLog(@"regexError: %@", regexError);
    return nil;
}

来自 this answer .

这给出了这个错误:

regexError: Error Domain=NSCocoaErrorDomain Code=2048 “操作无法完成。(Cocoa 错误 2048。)” UserInfo=0x8e86670 {NSInvalidValue=(?<=#EXT[^

Cocoa 错误 2048 是 NSFormattingErrorMinimum according to the docs ...但实际上没有进一步的解释。

这是什么意思?



Best Answer-推荐答案


您是否要匹配新的换行符/换行符?你已经在你的正则表达式中插入了一个文字换行符......你需要插入换行符的代码。尝试转义为 \\n 等。

编辑:

您必须转义 所有 特殊字符串。例如,您希望您的正则表达式字符串包含 \+r,而不是换行符。所以你需要使用 \\r 而不是 \r

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

编辑 2:

您的后视中不能有无限长度的字符串。因此,不允许 *+。这是根据 ICU regex reference . (NSRegularExpression 使用 ICU 正则表达式语法。)

关于ios - 在 Cocoa 中使用 NSRegularExpression 时出现 Cocoa 错误 2048,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39325090/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4