2010-06-17 35 views
0

的Mac OS 10.6,可可項目,需要10.4兼容性。的NSString簡單模式匹配

(請注意:我正則表達式的知識是很輕微的)

我需要解析NSString的,匹配在字符串中包含一個嵌入式標籤,在標籤格式的情況:

[XXXX]

其中xxxx是隨機的字符。

例如「快速的棕色[foxy]狐狸喜歡sox」。

在上述情況下,我需要獲取字符串「狡猾」。 (或零,如果沒有標籤被發現。)

每個字符串只會有一個標籤,標籤可以在字符串中的任何地方出現,也可能不會出現在所有。

可能有人請一個辦法來做到這一點,最好幫不必包括其他庫,如RegexKit。感謝您的任何幫助。

+1

接受的答案是不是真的一般的。你有沒有找到一種方法來做類似於正則表達式的東西? – elsurudo 2012-10-29 21:22:15

回答

4

我建議類似如下:

NSString *subString = nil; 
NSRange range1 = [myString rangeOfString:@"["]; 
NSRange range2 = [myString rangeOfString:@"]"]; 
if ((range1.length == 1) && (range2.length == 1) && (range2.location > range1.location)) { 
    NSRange range3; 
    range3.location = range1.location+1; 
    range3.length = (range2.location - range1.location)-1; 
    subString = [myString substringWithRange:range3]; 
} 
+1

謝謝chrisbtoo!你是我翅膀下的風。 :-)只是發現一個小錯誤,雖然在第6行應該是:「range3.location = range1.location + 1」。大聲歡呼。 – SirRatty 2010-06-17 04:46:14

+2

好去處 - 將更新其用於任何未來的一瞥的緣故。 – chrisbtoo 2010-06-17 04:49:23