我正在尝试匹配
[history =" e70b3ffc-beaf-423f-b084-72bc5bae3147"]历史名称[/ history]
获取"标签"之间的ID和内容。虽然上面的https://regexr.com/3ilt2上的工作正常,但它在我的代码上不匹配,我无法弄清楚原因。有任何想法吗?
$parsed_string = preg_replace_callback(
// [history="ID"]ABC[/history]
'/\[history="(.*?)"\](.*?)\[\/history\]/',
function ($matches) {
return $this->parseHistories( $matches, 'alt-name' );
},
$parsed_string
);
答案 0 :(得分:1)
preg_replace_callback
函数在以下代码中正常工作:
$parsed_string = "[history=\"e70b3ffc-beaf-423f-b084-72bc5bae3147\"]History name here[/history]";
$parsed_string = preg_replace_callback(
// [history="ID"]ABC[/history]
'/\[history="(.*?)"\](.*?)\[\/history\]/',
function ($matches) {
return $matches[1]; // return the first capture group (the UUID)
},
$parsed_string
);
echo $parsed_string;
这将输出捕获的UUID e70b3ffc-beaf-423f-b084-72bc5bae3147
。您的parseHistories()
功能一定存在问题。