gpt4 book ai didi

ios - "\P{Letter}"和 NSRegularExpression

转载 作者:行者123 更新时间:2023-11-29 04:04:42 26 4
gpt4 key购买 nike

我有一个 NSString,我想用 NSRegularExpression 进行测试,但它的行为与我预期的不一样,而且我不知道在哪里再搜索答案。

这是我的代码:

    BOOL companyNameContainsOnlyAuthorizedCharacters = YES;

NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[\P{Letter}]" options:0 error:&error];
NSArray *matches = [[NSArray alloc] init];
matches = [regex matchesInString:[model editorName] options:0 range:NSMakeRange(0,[[model editorName] length])];

if ([matches count] > 0) {

companyNameContainsOnlyAuthorizedCharacters = NO;

}

据我所知, [\P{Letter}] 应该匹配除字母之外的任何内容。尽管如此,它只是匹配字符“\”、“P”、“{”、“L”、“e”、“t”、“r”和“}”。我也尝试过不使用方括号 [],但它根本不匹配任何内容。

任何帮助将不胜感激,提前谢谢您。

编辑:另外,xcode 给我一个警告,\P 是一个未知的转义序列...

最佳答案

您需要两个反斜杠:

regularExpressionWithPattern:@"[\\P{Letter}]"

因为反斜杠本身需要在字符串中转义。

检查“仅字母”的可能更简单的解决方案是

NSString *stringToTest = ...;
NSCharacterSet *letterCharset = [NSCharacterSet letterCharacterSet];
BOOL lettersOnly = [[stringToTest stringByTrimmingCharactersInSet:letterCharset] length] == 0;

关于ios - "\P{Letter}"和 NSRegularExpression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15429798/

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