繁体   English   中英

正则表达式匹配双花括号嵌套

[英]Regex match double curly braces nested

正则表达式匹配,而/循环双大括号包含双大括号?

<?php
$str = '<html lang="{{var doc-lang}}">
<head>
<title>{{var doc-title}}</div>
</head>
<body>
<div class="container">
    <div class="row" {{while products}}>
        {{var name}}
        {{var sku}}
        {{var barcode}}
    </div {{while end}}>
</div>
</body>
</html>';

我们可以得到吗

<div class class="row"', [products], {{var name}}, {{ var sku}} and {{var barcode}}

$str

我只能想到这个Reg

\<((.*)\{\{while\s+(.*)\}\}(.*)\{\{while\s+end\}\})\>

正则表达式101

尝试这个:

/\s*(.*\{\{while\s+.*(?:\r?\n.*)+\{\{while\s+end.*)/

在线演示


还可以分别获取它们(如您在问题和评论中提到的) ,请尝试以下操作:

/\s*(?:(.*)\s+\{\{while\s+(.*)\}\}.*\r?\n\s*(.*)\r?\n\s*(.*)\r?\n\s*(.*)\r?\n.*)/

这样您可以得到所需的内容:

'$1', [$2], $3, $4 and $5

输出:

'<div class class="row"', [products], {{var name}}, {{ var sku}} and {{var barcode}}

在线演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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