【问题标题】:Cocoa Error 2048 on NSRegularExpressionNSRegularExpression 上的 Cocoa 错误 2048
【发布时间】:2014-02-08 09:55:07
【问题描述】:

我正在尝试使用 NSRegularExpression 在 pbxproj(在 .xcodeproj 文件夹中)搜索字符串。

我正在“开始 PBXBuildFile 部分”区域中搜索编译器标志

NSString* findFlagsRegex = @"([A-Z0-9]{24}\\s\\/\\*\\s[A-Za-z\\.\\s0-9]+\\*\\/\\s=\\s{isa\\s\\=\\s[A-Za-z]*;\\s?fileRef\\s\\=\\s[A-Z0-9]*\\s\\/\\*\\s[A-Za-z0-9\\s\\.]*\\*\\/;\\ssettings\\s\\=\\s{[A-Za-z0-9_\\s\\=\"-]*;\\s\\};\\s};)";
NSRegularExpression* expression3 = [NSRegularExpression regularExpressionWithPattern:findFlagsRegex options:kNilOptions error:&err];
NSLog(@"Error: %@",[err description]);

Error Domain=NSCocoaErrorDomain Code=2048 "The value “([A-Z0-9]{24}\s\/\*\s[A-Za-z\.\s0-9]+\*\/\s=\s{isa\s\=\s[A-Za-z]*;\s?fileRef\s\=\s[A-Z0-9]*\s\/\*\s[A-Za-z0-9\s\.]*\*\/;\ssettings\s\=\s{[A-Za-z0-9_\s\="-]*;\s\};\s};)” is invalid." UserInfo=0x61800026a7c0 {NSInvalidValue=([A-Z0-9]{24}\s\/\*\s[A-Za-z\.\s0-9]+\*\/\s=\s{isa\s\=\s[A-Za-z]*;\s?fileRef\s\=\s[A-Z0-9]*\s\/\*\s[A-Za-z0-9\s\.]*\*\/;\ssettings\s\=\s{[A-Za-z0-9_\s\="-]*;\s\};\s};)}

我复制:

  ([A-Z0-9]{24}\s\/\*\s[A-Za-z\.\s0-9]+\*\/\s=\s{isa\s\=\s[A-Za-z]*;\s?fileRef\s\=\s[A-Z0-9]*\s\/\*\s[A-Za-z0-9\s\.]*\*\/;\ssettings\s\=\s{[A-Za-z0-9_\s\="-]*;\s\};\s};)

上面的正则表达式在 RegexPal 中工作,直接从同一测试数据的错误消息中的无效值中复制它...所以我不确定是什么问题:/

不确定这是否会添加任何内容,但这是 Mac 应用而不是 iOS 应用。

【问题讨论】:

    标签: objective-c regex nsregularexpression


    【解决方案1】:

    您的模式包含一个单独的文字}。我相信你的意思是有两个文字 {s 和两个文字 }s - 这是你在你的问题中的模式的一个稍微修改过的版本,另外插入了三个 \\s 来逃避花括号目前没有在您的代码中转义。

    NSString* findFlagsRegex = @"([A-Z0-9]{24}\\s\\/\\*\\s[A-Za-z\\.\\s0-9]+\\*\\/\\s=\\s\\{isa\\s\\=\\s[A-Za-z]*;\\s?fileRef\\s\\=\\s[A-Z0-9]*\\s\\/\\*\\s[A-Za-z0-9\\s\\.]*\\*\\/;\\ssettings\\s\\=\\s\\{[A-Za-z0-9_\\s\\=\"-]*;\\s\\};\\s\\};)";
    

    我不确定该错误是否与 RegexPal 相关,或者 RegexPal 是否取决于您的浏览器使用的 JS 副本,或者该错误是否与 NSRegularExpressions 相关,但无论哪种方式,转义一个不t 需要转义不应该引起任何问题(或者至少我对正则表达式的理解不应该。)

    【讨论】:

    • 谢谢...这让我发疯了!
    猜你喜欢
    • 2014-01-05
    • 2011-10-31
    • 2013-11-09
    • 2022-01-14
    • 1970-01-01
    • 2013-10-19
    • 2012-11-05
    • 2014-03-25
    相关资源
    最近更新 更多