请问,使用正则表达式模式从$result
获取$string
的正确php代码是什么?
$string = 'xmlns(ns=http://testurl.com/now)xpointer(//section/datePublished/text())';
preg_match($regex, $string, $result);
输出:
$result = array(
'xmlns' => 'ns=http://testurl.com/now',
'xpointer' => '//section/datePublished/text()'
);
方括号可以是递归的(如text()
)。
答案 0 :(得分:0)
使用/(\w+)\((.*?)\)(?=\w+\(|$)/
正则表达式模式,该模式匹配括号前的任何字符串和()
中的任何字符串。
preg_match_all("/(\w+)\((.*?)\)(?=\w+\(|$)/", $string, $m);
$result = array_combine($m[1], $m[2]);
在demo中查看结果