如何从Objective C中的主String获取字符串的一部分

时间:2010-01-22 06:36:44

标签: iphone objective-c

我有mainString,我需要在找到关键字后获取字符串的一部分。

NSString * mainString =“你好,你好GET = dsjghdsghghdsjkghdjkhsg”;

现在我需要在关键字“GET =”之后获取字符串。

等待回复。

3 个答案:

答案 0 :(得分:7)

查看NSString documentation

假设你的字符串非常简单,你可以这样做:

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的子字符串从=的位置带到字符串的末尾。