gpt4 book ai didi

iphone - 匹配字符串格式

转载 作者:行者123 更新时间:2023-11-28 19:22:20 24 4
gpt4 key购买 nike

如何像 regex 一样执行字符串匹配?

例如我有一个字符串数组,如果这些字符串的格式为"abc def xxx",我想匹配,其中xxx是数字,如1, 11, 12, 100, 111

我怎样才能做到这一点?

最佳答案

数组:

NSArray *array1 = [NSArray arrayWithObjects:@"abc def 1", @"abc def 64", @"abc def 853", @"abc def 14", nil];
NSArray *array2 = [NSArray arrayWithObjects:@"abc def 3", @"abc def 856", @"abc def 36", @"abc def 5367", nil];

正则表达式:

NSString *regex = @"abc def [0-9]{1,3}";

检查数组中的所有字符串是否与正则表达式匹配:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ALL description MATCHES %@", regex];
BOOL allStringsMatch = [predicate evaluateWithObject:array1];
// OUTPUT: YES
allStringsMatch = [predicate evaluateWithObject:array2];
// OUTPUT: NO

array1 中的所有对象都与正则表达式匹配,但是 array2 包含与正则表达式不匹配的字符串 @"abc def 5367" .

获取匹配的字符串:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"description MATCHES %@", regex];
NSArray *unmatchedStrings = [array2 filteredArrayUsingPredicate:predicate];
// OUTPUT: { @"abc def 3", @"abc def 856", @"abc def 36" }

获取不匹配的字符串:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT description MATCHES %@", regex];
NSArray *unmatchedStrings = [array2 filteredArrayUsingPredicate:predicate];
// OUTPUT: { @"abc def 5367" }

请注意,谓词中的"description"NSString- description 方法。

关于iphone - 匹配字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7673278/

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