要获取具有特定前缀的递归括号的RegEx模式是什么?

时间:2018-12-01 08:04:45

标签: php regex xinclude

请问,使用正则表达式模式从$output获取$string的正确php代码是什么?

$string = 'xmlns(ns=http://testurl.com/now)xpointer(//section/datePublished/text())';

概括:

$string = 'string1(string1_1)string2(string2_1)';

方括号可以是递归的(如text())。 即string1_1和/或string2_1可以包含其他括号。     $ string ='string1(string1_1())string2(string2_1()string2_2());

知道方括号前缀xmlns,我需要使用正则表达式模式来获取//section/datePublished/text(),即知道string1我需要使用正则表达式模式来获取string1_1(或{{1 }}。

知道方括号前缀string1_1(),我需要使用正则表达式模式来获取xpointer,即知道ns=http://testurl.com/now我需要使用正则表达式模式来获取string2(或{{1 }}。

你能解释一下这个过程吗?

1 个答案:

答案 0 :(得分:0)

这可以帮助

preg_match('/xmlns\((.*)\)xpointer\((.*)\)/', $inString, $outArray);
$output = $outArray[2];
$output1 = $outArray[1];

演示:https://www.phpregexonline.com/q/4