[英]Reuse matched group in regex
我正在尝试匹配:“ {{循环(某物)}}”和第一个{{/ loop(某物)}}之间的所有内容
文字范例:
{{ LOOP data }}
<span> Member key = {{.key}} </span>
<span> Member value = {{.}} </span>
<span> Member member = {{name}} </span>
<span> Iteration number = {{.counter}} </span>
{{ /LOOP data }}
这是正则表达式不起作用:
/\{\{\s+loop\s+(.+?)\s+\}\}([\w\W]+?)\{\{\s+\/loop\s$1\s+\}\}/i
如您所见,我正在尝试将第一个匹配的组与“ $ 1”重用:我缺少了什么?
php代码如下:
$text = '
{{ LOOP data }}
<span> Member key = {{.key}} </span>
<span> Member value = {{.}} </span>
<span> Member member = {{name}} </span>
<span> Iteration number = {{.counter}} </span>
{{ /LOOP data }}
';
preg_match('/\{\{\s+loop\s+(.+?)\s+\}\}([\w\W]+?)\{\{\s+\/loop\s\1\s+\}\}/i', $text, $match);
print_r($match);
die;
我相信您要的是\\1
,而不是$1
。
详细信息: http : //www.regular-expressions.info/brackets.html#usebackrefinregex
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.