gpt4 book ai didi

ios - 无法匹配整个正则表达式

转载 作者:行者123 更新时间:2023-11-29 02:11:51 24 4
gpt4 key购买 nike

我想知道某个字符串是否有正则表达式。

我写了下面的代码来匹配类似于下面的字符串:

“A|3|a3\n”

但是下面的代码得到了一个匹配数组。我不希望这样,因为我只想了解我的响应字符串是否符合正则表达式给出的标准。关于如何这样做有什么建议吗?

    NSString * response = "A|3|a3\n";
NSRange searchedRange = NSMakeRange(0, [ response length]);
NSString *pattern = @"[ABC]\|[0-9]\|[a][0-9]$";
NSError *error = nil;

NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern: pattern options:0 error:&error];
NSArray* matches = [regex matchesInString:response options:0 range: searchedRange];
for (NSTextCheckingResult* match in matches){
NSString* matchText = [response substringWithRange:[match range]];
NSLog(@"match: %@", matchText);
}

最佳答案

Xcode 应该抛出一个警告:

Warning: Unknown escape sequence '\|'

对于这一行:

NSString *pattern = @"[ABC]\|[0-9]\|[a][0-9]$";

"\"确实会转义下一个字符(对于某些特殊含义,如经典的 "\n"),但 "\|"是普通字符串的未知转义序列。所以你必须“加倍”:

NSString *pattern = @"[ABC]\\|[0-9]\\|[a][0-9]$"

关于ios - 无法匹配整个正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29213975/

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