正则表达式提取方括号或大括号之间的文本
Posted
技术标签:
【中文标题】正则表达式提取方括号或大括号之间的文本【英文标题】:Regular expression to match text between either square or curly brackets 【发布时间】:2011-01-25 02:39:26 【问题描述】:与我的previous question 相关,我有一个格式如下的字符串:
this is a [sample] string with [some] special words. [another one]
提取方或大括号内的单词的正则表达式是什么,即。
is
[sample]
[some]
special
[another one]
注意:在我的用例中,括号不能嵌套。我还想保留封闭字符,以便在处理结果时可以区分它们。
【问题讨论】:
如果字符串是blah [] blah ]
怎么办?
【参考方案1】:
只需或 (|
) 将您希望匹配在一起的不同事物:
\[.*?\]|\.*?\
【讨论】:
【参考方案2】:这个似乎有效:
[[].*?[\]]
或者这个:
\[.*?\]|.*?
如果你想捕捉下面的 cmets 中提到的情况。
您可以使用在线正则表达式测试器来尝试这些事情。我认为http://gskinner.com/RegExr/ 是更人性化的选项之一。
【讨论】:
在 [ ... 的情况下会失败。 编辑删除无关的``。 @Carl,不,他说 [foo [bar]](嵌套示例)没有发生。 括号不能嵌套对我来说意味着[[]],这是正则表达式失败的经典案例。 @Carl:您可以将 [ 与\[
匹配。为什么使用[[]
?以上是关于正则表达式提取方括号或大括号之间的文本的主要内容,如果未能解决你的问题,请参考以下文章