gpt4 book ai didi

ios - 捕获组正则表达式 NSRegularExpression iOS

转载 作者:行者123 更新时间:2023-12-01 15:40:47 25 4
gpt4 key购买 nike

我正在尝试执行以下正则表达式:^(\$.)([\d]{1,10})?

$C14325 字符串的结果在 https://regex101.com[0-2]:"$C"[2-7]:"14325"

但是,当我使用 NSRegularExpression 执行以下代码时,它会作为单个匹配项而不是组返回。

基本上,我正在尝试对这些结果进行分组,并找到一种方法使结果与哪个正则表达式相对应。

NSString *regexStr=@"^(\\$.)([\\d]{1,10})?";
NSString *inputStr=@"$C14325";
NSError *regexError;
NSRegularExpression *aRegx=[NSRegularExpression regularExpressionWithPattern:regexStr options:NSRegularExpressionCaseInsensitive error:&regexError];
NSArray *results=[aRegx matchesInString:inputStr options:0 range:NSMakeRange(0, inputStr.length)];

Named capture groups with NSRegularExpression 有答案,但我认为 rangeAtIndex 如果找不到该值将抛出异常。

最佳答案

您的正则表达式部分正确。您需要做的就是在 results 中迭代匹配项:

for (NSTextCheckingResult *match in results) {
NSRange matchRange = [match range];
NSRange first = [match rangeAtIndex:1];
NSRange second = [match rangeAtIndex:2];
NSLog(@"1:%@ 2:%@.", [NSValue valueWithRange:first], [NSValue valueWithRange:second]);
}

1:NSRange: {0, 2} 2:NSRange: {2, 5}.

关于ios - 捕获组正则表达式 NSRegularExpression iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31419835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com