我有mainString,我需要在找到关键字后获取字符串的一部分。
NSString * mainString =“你好,你好GET = dsjghdsghghdsjkghdjkhsg”;
现在我需要在关键字“GET =”之后获取字符串。
等待回复。
答案 0 :(得分:7)
假设你的字符串非常简单,你可以这样做:
NSArray *components = [mainString componentsSeparatedByString: @"GET="];
NSString *stringYouWant = [components objectAtIndex: 1];
显然, 这绝对不会执行错误检查并对mainString
的实际内容做出一些假设 ,但它应该让你开始。< / p>
另请注意,代码在某种程度上是防御性的,因为它假设您正在寻找GET=
而不是=
上的分隔符。无论哪种方式都是解析方面的黑客,但是......嘿......黑客有时候是正确答案。
答案 1 :(得分:4)
您可以通过RegexKitLite使用正则表达式:
NSString *mainString = @"Hi how are you GET=dsjghdsghghdsjkghdjkhsg";
NSString *matchedString = [mainString stringByMatching:@"GET=(.*)" capture:1L];
// matchedString == @"dsjghdsghghdsjkghdjkhsg";
使用的正则表达式GET=(.*)
基本上说“查找GET=
,然后抓住所有内容”。 ()
指定捕获组,这对于仅提取部分匹配很有用。捕获组从1开始,捕获组0为“整个匹配”。捕获组内的部分.*
表示“匹配任何字符(.
)零次或多次(*
)”。
如果字符串(在本例中为mainString
)与正则表达式不匹配,则matchedString
将为NULL
。
答案 2 :(得分:0)
您可以获取第一次出现=
的位置,然后将mainString
的子字符串从=
的位置带到字符串的末尾。