如何使用PHP preg_match提取字符串中wp-block的ref数值
提取WordPress Block Ref中的数字
嘿,我来帮你搞定这个提取数字的问题!你已经用preg_match定位到目标片段了,现在只需要调整正则表达式,把ref键对应的数字单独捕获出来就行。
具体实现代码
直接修改你的正则,添加捕获组来锁定数字部分:
$string = '<div class="wp-block-column"><!-- wp:block {"ref":3} /--></div>'; // 正则中用(\d+)捕获ref后面的数字 preg_match('/<!-- wp:block {"ref":(\d+)} \/-->/', $string, $matches); // 捕获到的数字会存在$matches[1]里 if (isset($matches[1])) { $refNumber = $matches[1]; echo $refNumber; // 输出结果:3 }
正则说明
(\d+):这是一个捕获组,专门匹配1个或多个数字,会把匹配到的内容单独存到$matches数组的第2个元素($matches[0]是整个匹配的完整片段)。- 整个正则不需要关心
<!-- wp:block {"ref":之前的内容,只要目标片段存在,就能精准定位到后面的数字。
拓展(应对可能的格式变化)
如果遇到ref值前后有空格的情况(比如{"ref": 123 }),可以调整正则兼容这种场景:
preg_match('/<!-- wp:block {"ref":\s*(\d+)\s*} \/-->/', $string, $matches);
这里的\s*会匹配0个或多个空白字符,让正则更鲁棒。
内容的提问来源于stack exchange,提问作者Bas
相关产品推荐
相关产品推荐

