gpt4 book ai didi

objective-c - 检测并删除文本中的日期字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:45 24 4
gpt4 key购买 nike

我想知道是否可以检测并删除文本中字符串格式的日期,如下所示:

Title 31 December 2012
Title December 2012
Title 31-12-12
Title (31-12-12)

在这三个示例中,在所有情况下我都想删除所有内容并仅保留世界“标题”,我发现此方法例如删除括号内的文本:

 searchText = [searchText stringByReplacingOccurrencesOfString:@" \\([^()]*\\)" withString:@"" options:NSRegularExpressionSearch|NSCaseInsensitiveSearch range:NSMakeRange(0, [searchText length])];

我可以删除这个 (31-12-12),但我不明白我该如何处理其他情况...

最佳答案

合并成一个RE:

NSString *reText = @" ((\\d{2} )?\\w+ \\d{4})|(\\(?\\d{2}-\\d{2}-\\d{2}\\)?)";   

请注意,这实际上是由两个 RE 或组合在一起组成的:

(\\d{2} )?\\w+\\d{4}

\\(?\\d{2}-\\d{2}-\\d{2}\\)?

参见 NSRegularExpression Class Reference

NSArray *testList = @[
@"Title 31 December 2012",
@"Title December 2012",
@"Title 31-12-12",
@"Title (31-12-12)"
];
NSString *reText = @"( (\\d{2} )?\\w+ \\d{4})|( \\(?\\d{2}-\\d{2}-\\d{2}\\)?)";

for (NSString *test in testList) {
NSString *result = [test
stringByReplacingOccurrencesOfString:reText
withString:@""
options:NSRegularExpressionSearch|NSCaseInsensitiveSearch
range:NSMakeRange(0, [test length])];
NSLog(@"result: '%@' test: '%@'", result, test);
}

NSLog输出:
结果:“标题”测试:“标题 2012 年 12 月 31 日”
结果:'Title' 测试:'Title December 2012'
结果:“标题”测试:“标题 31-12-12”
结果:'标题'测试:'标题(31-12-12)'

关于objective-c - 检测并删除文本中的日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14102756/

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