php中的正则表达式只匹配url和括号内的内容和引号

时间:2017-03-09 05:56:01

标签: php regex preg-replace preg-match preg-match-all

我在textarea上输入了以下文字,我想从这个文本解析3个网址,如果它有[]获取内容的格式如下:url [“key”,“value”]我是一直试图通过正则表达式解决它,但我没有使用它:/(\ w。+?)[((?)“(。?)”),(“(。?)”) ] /

  

uploads / documents / home4.jpg [“nosotros”,“Somosunaasociacióncivilsin fines de lucro,formada por padres y madres con hijos con problemasdeaudición,que nos hemos organizadoraízdelos problemas queenfrentamosdíaa día,por la falta de apoyo paralacontactióndenuestros hijos。“],uploads / documents / home4.jpg [”servicios“,”Somosunaasociacióncivilsin fines de lucro,formada por padres y madres con hijos con problemasdeaudición ,que nos hemos organizadoaraízdelos problemas queenfrentamosdíaadía,por la falta de apoyo paralacontactióndenuestros hijos。“],

     

http://lorempixel.com/300/300 [“tecnologias”,“Somosunaasociacióncivilsin fines de lucro,formada por padres y madres con hijos con problemasdeaudición,que nos hemos organizadoraízdelos problemas queenfrentamosdíaadía, la la falta de apoyo paralacontactióndenuestros hijos。“]

我不使用正则表达式,如果非常感激,我会有点帮助:)

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

(\w.*?)\[([^\]]*)\]

Demo

示例代码:

<?php

$re = '/(\w.*?)\[([^\]]*)\]/';
$str = 'uploads/documents/home4.jpg[ " nosotros "," Somos una asociación civil sin fines de lucro, formada por padres y madres con hijos con problemas de audición, que nos hemos organizado a raíz de los problemas que enfrentamos día a día, por la falta de apoyo para la inclusión de nuestros hijos."] , uploads/documents/home4.jpg [" servicios ","Somos una asociación civil sin fines de lucro, formada por padres y madres con hijos con problemas de audición, que nos hemos organizado a raíz de los problemas que enfrentamos día a día, por la falta de apoyo para la inclusión de nuestros hijos."] ,

http://lorempixel.com/300/300 [" tecnologias ","Somos una asociación civil sin fines de lucro, formada por padres y madres con hijos con problemas de audición, que nos hemos organizado a raíz de los problemas que enfrentamos día a día, por la falta de apoyo para la inclusión de nuestros hijos."]
';

$list=[[]];
preg_match_all($re, $str, $matches);
$cnt=0;
$index=0;
for($i=1;$i<count($matches);$i++)
{
    for($j=0;$j<3;$j++) 
        $list[$cnt++][$index]=$matches[$i][$j];
    $cnt=0;
    $index=1;
}
print_r($list);
?>

Run it here