Что такое шаблон RegEx для получения рекурсивной скобки с определенным префиксом? - PullRequest
0 голосов
/ 01 декабря 2018

Пожалуйста, какой правильный php-код, используя шаблон регулярного выражения, чтобы получить $output из $string?

$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 (или string1_1()).

Зная префикс скобок xpointer, мне нужен шаблон регулярных выражений, чтобы получить ns=http://testurl.com/now, то есть зная, что string2 мне нуженшаблон регулярного выражения для получения string2_1 (или string2_1()string2_2().

Можете ли вы объяснить процесс?

1 Ответ

0 голосов
/ 01 декабря 2018

Это может помочь

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

демо: https://www.phpregexonline.com/q/4

...