2010-03-08 30 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