gpt4 book ai didi

ios - Obj-c 使用正则表达式通过双引号分隔字符串

转载 作者:行者123 更新时间:2023-11-29 12:22:18 25 4
gpt4 key购买 nike

我今天刚学了正则表达式,我有这个 NSString:

{"Mon":["Operation System;Monday 1,2{9-16};ProfessorA;XX-229","Database;Monday3,4{1-16};ProfessorB;XX-130","Human Computer Interaction;Monday5,6{1-8};ProfessorC;XX-130;;C Programming;Monday5,6{9-16};ProfessorC;XX-336",null,null,null]}

我想将它们分开并放入一个 NSArray 中(分开后):

Mon
Operation System;Monday 1,2{9-16};ProfessorA;XX-229
Database;Monday3,4{1-16};ProfessorB;XX-130
Human Computer Interaction;Monday5,6{1-8};ProfessorC;XX-130;;C Programming;Monday5,6{9-16};ProfessorC;XX-336

并将其分别显示到我的 TableViewCells 中,我的正则表达式是这样的:

[^\\"]

它完成了工作,但还不够好,因为这使得它分成单个字母而不是我想要的字符串。有人知道吗?

最佳答案

我已经阅读了评论,但我仍然对为什么您确实需要通过 reg-exp 手动解析它感到有些困惑,即使您将它作为字符串...

所以,我提出这个,它可能有用(如果不是对你,但对那些不想创建实际的 reg-exp 但想对其进行一般解析的人):

NSString *_json = @"{\"Mon\":[\"Operation System;Monday 1,2{9-16};ProfessorA;XX-229\",\"Database;Monday3,4{1-16};ProfessorB;XX-130\",\"Human Computer Interaction;Monday5,6{1-8};ProfessorC;XX-130;;C Programming;Monday5,6{9-16};ProfessorC;XX-336\",null,null,null]}";
NSError *_error = nil;
id _jsonId = [NSJSONSerialization JSONObjectWithData:[_json dataUsingEncoding:NSUTF8StringEncoding] options:0 error:&_error];

然后你可以对这些值做任何你想做的事情,因为 _jsonId 看起来像这样:

{
Mon = (
"Operation System;Monday 1,2{9-16};ProfessorA;XX-229",
"Database;Monday3,4{1-16};ProfessorB;XX-130",
"Human Computer Interaction;Monday5,6{1-8};ProfessorC;XX-130;;C Programming;Monday5,6{9-16};ProfessorC;XX-336",
"<null>",
"<null>",
"<null>"
);
}

并且您可以手动提取值,例如:

NSArray *_keyMon = [_jsonId valueForKey:@"Mon"];

NSString *_value0 = [_keyMon objectAtIndex:0]; // Operation System;Monday 1,2{9-16};ProfessorA;XX-229
NSString *_value1 = [_keyMon objectAtIndex:1]; // Database;Monday3,4{1-16};ProfessorB;XX-130
NSString *_value1 = [_keyMon objectAtIndex:2]; // Human Computer Interaction;Monday5,6{1-8};ProfessorC;XX-130;;C Programming;Monday5,6{9-16};ProfessorC;XX-336
// 3, 4, etc...
NSString *_value5 = [_keyMon objectAtIndex:5];

哪些值可能需要进一步的后处理,以通过 ; 分隔组件,例如:

NSArray *_value0Components = [_value0 componentsSeparatedByString:@";"];

其中将包含:

(
"Operation System",
"Monday 1,2{9-16}",
"ProfessorA",
"XX-229"
)

等...

关于ios - Obj-c 使用正则表达式通过双引号分隔字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30237263/

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