解析MediaWiki Template-Block有一点问题:http://regex101.com/r/dD1hC9/1
\{\{Template1 (.+?)\}\}
。{{Template1 |Parameter1=Text |Parameter2=Text |Parameter3={{Template2|hier|steht|text}} |Parameter4=Text }}
是否有可能在关联数组(parametername => value
)中解析整个块,而不会在所有参数中分别丢失Parameter3中的模板?
答案 0 :(得分:0)
<?php
$subject = "{{Template1 |Parameter1=Text |Parameter2=Text |Parameter3={{Template2|hier|steht|text}} |Parameter4=Text }}";
preg_match('/{{Template1(.*)}}/', $subject, $matches);
preg_match_all('/ \|(\w+)=({{.*?}}|\w*)/', $matches[1], $matches);
$a = array_combine($matches[1], $matches[2]);
print_r($a);
?>
打印
Array ( [Parameter1] => Text [Parameter2] => Text [Parameter3] => {{Template2|hier|steht|text}} [Parameter4] => Text )