2010-03-08 26 views
5

與我previous question之間提取文本,我有以下格式的字符串:正則表達式,以正方形或大括號

this {is} a [sample] string with [some] {special} words. [another one] 

什麼是正則表達式要麼廣場內提取的話大括號,即。

{is} 
[sample] 
[some] 
{special} 
[another one] 

注意:在我的用例中,括號不能嵌套。我還想保留封閉的字符,以便在處理結果時能夠區分它們。

+0

如果字符串是'胡說[{] {嗒嗒]}'? – kennytm 2010-03-08 18:30:00

回答

7

簡單或(|)要匹配在一起的不同的東西:

\[.*?\]|\{.*?\}

2

這一個似乎工作:

[[{].*?[}\]] 

或者這一個:

\[.*?\]|{.*?} 

如果你想趕上在下面的評論中提到的情況。

您可以使用在線正則表達式測試器來嘗試這些事情。我認爲http://gskinner.com/RegExr/是更方便用戶的選擇之一。

+1

這會在[...}的情況下失敗。 – 2010-03-08 18:31:44

+0

編輯刪除多餘的'\'。 – 2010-03-08 18:31:46

+0

@Robert,他說這不會發生在他的文本中,對吧? – 2010-03-08 18:32:19