Ios 用于检测javascript调用函数的正则表达式

Ios 用于检测javascript调用函数的正则表达式,ios,objective-c,regex,Ios,Objective C,Regex,例如,有@“javascript:viewData(3713,'A',89360)”字符串 我想从字符串中提取3713、A和89360 对于Java,“viewData\([^\(]*),[\s\s]\'([^\(]*)\”,[\s\s]([^\(]*)\)”可以成功提取这些字符串 但是,我无法在iOS Objective-C中成功提取它们 我的代码如下: NSString *searchedString = @"javascript:viewData(3713, 'A', 89360)"; N

例如,有
@“javascript:viewData(3713,'A',89360)”
字符串

我想从字符串中提取3713、A和89360

对于Java,“
viewData\([^\(]*),[\s\s]\'([^\(]*)\”,[\s\s]([^\(]*)\)
”可以成功提取这些字符串

但是,我无法在iOS Objective-C中成功提取它们

我的代码如下:

NSString *searchedString = @"javascript:viewData(3713, 'A', 89360)";
NSRange   searchedRange = NSMakeRange(0, [searchedString length]);
NSString *pattern = @"<HERE THE PATTERN NEEDED>";
NSError  *error = nil;
NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];
NSTextCheckingResult *match = [regex firstMatchInString:searchedString options:0 range:searchedRange];
NSString*searchedString=@“javascript:viewData(3713,'A',89360)”;
NSRange searchedRange=NSMakeRange(0,[searchedString长度]);
NSString*模式=@“”;
n错误*错误=nil;
NSRegularExpression*regex=[NSRegularExpression regular expressionwithpattern:pattern选项:0错误:&error];
NSTextCheckingResult*match=[regex firstMatchInString:searchedString选项:0范围:searchedRange];
那么匹配的字符串可以是:

[searchedString substringWithRange:[匹配范围索引:1]]
。依此类推


如何设置模式?

基本上,正则表达式模式也应该在Objective-C中工作

但是,您必须避开所有反斜杠:

NSString *pattern = @"viewData\\(([^\\(]*),[\\s\\S]\\'([^\\(]*)\\',[\\s\\S]([^\\(]*)\\)";

使用您在Objective-C中实际尝试过的模式更新您的问题。并显示您获得的结果。您也需要在Java中执行相同的操作,这样就不可能出现问题(这就是为什么我要求OP更新他们的问题)。@rmaddy这似乎是问题所在;-)既然OP拒绝更新他们的问题,我们只能假设是这样。