2011-03-13 38 views

回答

2

不確定NSRegularExpression,但我懷疑它像其他的正則表達式中的條款貪婪。因此,如果可能有多個[單詞]或[括號中的短語]要用同一個字符串捕獲,則必須確保正則表達式不是貪婪。

也許像(打散跨越幾行爲清楚起見:)

\[      // find an opening square bracket 
    ([^]]+)    // find one or more characters that ARE NOT a square bracket 
\]      // find the corresponding closing square bracket 
+1

那麼如何找到未包含在括號中的文本的正則表達式呢? – blueeyez 2011-03-13 02:16:36

1

你的模式應該是\[(.*?)\]

+1

,而不是單\是正確的答案 THX :) – blueeyez 2011-03-13 02:00:21

+0

正則表達式匹配的是一般的貪婪,所以大多數實現將匹配這是「這是某種]文字,我會[像]到[解析]根據OP的輸入文本。您需要明確禁止使用大括號。 – GSnyder 2012-03-30 07:34:00

2

像丹尼爾回答正確的模式是\\[(.*?)\\] 讓我解釋一下爲什麼。

  1. \\[是指「開括號」符號。雙斜槓允許使用特殊符號[
  2. 所有()允許工會作爲原子序列
  3. . - 符號輸入0次以上 - 無特殊* ? + [ () { }^$ | \ . /!
  4. *?任何符號。儘可能少地匹配。
  5. \\] - 近距離支架\\的