我正在创建一个文本解析器,它基本上会查找以下内容:
{IF SOMETHING} then include this text {ENDIF SOMETHING}
我可以通过使用正则表达式找到它:
/{IF [A-Z]+}.*{ENDIF [A-Z]}/
但如果存在嵌套条件,这将无济于事。所以我想做一些更像的事情:
/{IF ([A-Z]+)}.*{ENDIF $1}/
但这似乎不起作用 - 这可能吗?
您也可以
使用其他语法: 'g{1}
这对于避免与反向引用后跟文字数字的混淆很有用。此语法允许使用如下所示的相对引用:'g{-1}
(即左侧最后一个定义的捕获组)
$1
仅用于带有 preg_replace
的替换字符串。
PHP Regex 使用 ''1 而不是 $1。有关更多信息,请参阅有关正则表达式反向引用的 PHP 手册。