【发布时间】:2017-07-09 12:40:23
【问题描述】:
我有一个类似这样的文字:
[text]
(more text)
(text...)
[text!]
(last text)
我需要匹配 () 和 [] 之间的文本。
输出应该是这样的:
[
"text",
"more text",
"text...",
"text!",
"last text"
]
我已经尝试过/[\[\(](.*?)[\]\)]/,但它在 PHP 中不起作用。
如果需要,这里是代码:
preg_match_all('/[\[\(](.*?)[\]\)]/', $text, $matches, PREG_SET_ORDER, 0);
var_dump($matches);
如何在 PHP 中使用正则表达式来实现这一点?
提前致谢,
斯卡约
【问题讨论】:
-
但是这个正则表达式也会匹配
[abcd) -
是的,我知道。但在这种情况下,它还不错。
-
如果括号外没有任何文字:
[^][)(]+