2014-01-26 396 views
0

我有NSString包含此字符串:正则表达式获取字符串从字符串

c&&(b.signature=Rk(c));return ql(a,b)} 

RK可以是任意两个字符。

我设法从(RegexKitLit)的字符串RK

NSString *functionCode = [dataStr2 stringByMatching:@".signature=(.*?)\(" capture:1L]; 

functionCode总是nil。任何想法是什么错?

+1

如果你知道你想要的2个字符在哪里,为什么你需要一个正则表达式? –

+0

我写到它可以是Rk,它可以是tU或任何其他两个字母 – MTA

+1

但是既然你知道他们在哪里,你不能只在这些位置提取字符吗? –

回答

0

不要为此烦恼正则表达式。如果字符串的形式始终是相同的,那么你可以简单地做:

NSString *dataStr2 = @"c&&(b.signature=Rk(c));return ql(a,b)}"; 
NSString *functionCode = [dataStr2 substringWithRange:NSMakeRange(16, 2)]; 

如果字符串不是那么固定的,那么基于它的=的位置。

NSString *dataStr2 = @"c&&(b.signature=Rk(c));return ql(a,b)}"; 
NSRange equalRange = [dataStr2 rangeOfString:@"="]; 
NSString *functionCode = [dataStr2 substringWithRange:NSMakeRange(equalRange.location + equalRange.length, 2)];