Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
735 views
in Technique[技术] by (71.8m points)

php - Regex: get recursive brackets with prefixes

Please, what is the correct php code, using a regex pattern, to get $result from $string?

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

Output:

$result = array(
    'xmlns' => 'ns=http://testurl.com/now',
    'xpointer' => '//section/datePublished/text()'
);

Brackets can be recursive (as text()).

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Use /(w+)((.*?))(?=w+(|$)/ regex pattern that match any string before parentheses and string in () after it.

preg_match_all("/(w+)((.*?))(?=w+(|$)/", $string, $m);
$result = array_combine($m[1], $m[2]);

Check result in demo


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...