繁体   English   中英

重用正则表达式中的匹配组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM