2012-09-06 30 views
0

我試圖匹配文本中不同項目的列表。我創建了一個正則表達式,但它匹配整個字符串而不是每個單獨的項目。正則表達式取代整行而不是確切的詞

這是我的當前正則表達式:

\[[a-zA-Z]\](.*)\. {1} 

我測試文本:

[step 1] test blahblah blah [A] test item 1. [B] test item 2. 

當前正則表達式匹配:

[A]試驗項目1 [B]試驗項目2 。

用1個字符串代替2個匹配。

回答

2

我想你想有非貪婪行爲:

\[[a-zA-Z]\](.*?)\. {1} 

注意問號(?)。它表示,表達式之前應該儘可能少地匹配fullfil表達式。基本上,它在第一個點之前停止,而不是最後一個之一。

Proof

+0

而不是懶點。*?最好使用否定字符類[^。] +除了點之外,它匹配任何內容。 – Robjong