给定一些文本,我想删除 {
和 }
之间包含的所有文本。该 block 本身可能包含一些 block 。我如何使用 PCRE 正则表达式来做到这一点?
\\example input:
{a}b{c{d}}e{f{g}h}
\\output:
be
最佳答案
使用regular expression recursion :
\{(?>[^{}]|(?R))*\}
PHP 示例:
$input = '{a}b{c{d}}e{f{g}h}';
$output = preg_replace('/\{(?>[^{}]|(?R))*\}/', '', $input);
echo($output); # => be
关于regex - 删除第一级 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21809100/