gpt4 book ai didi

ios - 解析文本,但保留标点符号

转载 作者:行者123 更新时间:2023-12-01 19:04:55 24 4
gpt4 key购买 nike

我正在使用这段代码来浏览一些输入的文本并提取由标记分隔的句子:

NSCharacterSet *punctuation =
[NSCharacterSet characterSetWithCharactersInString:@".!?\n"];
NSArray *parts = [data componentsSeparatedByCharactersInSet:punctuation];

问题是将所得数组从标点中剥离。如何使用适当的标点符号存储数据?如果可能的话,我想保持句子原样带有换行符(\ n)。

例如,如果我输入以下内容:

这是一个句子。它以句点标记。这句话没有一个标记。您怎么办?我做得很好!

我想得到这样的东西:

这是一个句子。
它以句点标记。
这句话没有一个标记
你好吗?
我做得很好!

最佳答案

希望这可以帮助:

NSString *string = @"This is a sentence. It is marked by a period. This sentence is not marked by one How do you do? I'm doing very good!";
NSError *error = nil;
NSString *pattern = @"(\\.|,|!|\\?|\\n)\\s*";
NSRegularExpression *expression = [NSRegularExpression regularExpressionWithPattern:pattern
options:0
error:&error];
if (expression)
{
NSArray *matches = [expression matchesInString:string
options:0
range:NSMakeRange(0, [string length])];
NSLog(@"%@", matches);
if ([matches count] > 0)
{
NSMutableArray *sentences = [[NSMutableArray alloc] initWithCapacity:[matches count]];
NSUInteger sentenceStart = 0;
for (NSTextCheckingResult *result in matches)
{
NSUInteger sentenceEnd = result.range.location + 1;
[sentences addObject:[string substringWithRange:NSMakeRange(sentenceStart, sentenceEnd - sentenceStart)]];
sentenceStart = sentenceEnd + (result.range.length - 1);
}
NSLog(@"%@", sentences);
}
}
else
{
NSLog(@"ERROR: %@", error);
}

关于ios - 解析文本,但保留标点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20282114/

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