PHP中提取字符串内[]包裹内容并转为数组的实现方法
实现方案:用PHP正则提取指定格式内容转数组
当然可以实现!在PHP中,我们可以借助正则表达式搭配preg_match_all()函数来精准捕获所有[xxx]格式的内容,具体代码如下:
$str = 'A quick [color] [animal] [action] over the lazy dog.'; // 匹配所有以[开头、]结尾的内容 preg_match_all('/\[[^\]]+\]/', $str, $matches); // 提取匹配到的结果数组 $array = $matches[0]; // 验证输出(可选) print_r($array);
代码说明:
- 正则表达式
/\[[^\]]+\]/:\[:匹配左方括号(因为[在正则里是特殊字符,需要用反斜杠转义)[^\]]+:匹配一个或多个非右方括号的字符,确保我们不会匹配到跨多个括号的内容\]:匹配右方括号(同样需要转义)
preg_match_all()函数会把所有符合规则的匹配结果存入$matches数组的第一个元素(也就是$matches[0]),直接赋值给$array就是你需要的目标数组,后续可以直接用于str_replace()函数。
如果之后你需要提取括号内的纯文本内容(不带[]),只需要把正则改成/\[([^\]]+)\]/,然后取$matches[1]即可,这个小拓展也可以记下来备用~
内容的提问来源于stack exchange,提问作者Qing Fei De Yi
相关产品推荐
相关产品推荐

