如何使用Pregmatch php获取[]之间的所有字符

时间:2015-05-07 11:30:54

标签: php preg-match

我有一个字符串

$str = "[xyz.hlp] into asasa jkljk [xyp.htq] zff [xrt.thg]";

我想从字符串中获取字符并创建所有这些字符的数组。例如,对于上面提供的字符串,我应该得到像这样的数组

$array("xyz.hlp","xyp.htq","xrt.thg");

我尝试使用preg_match();像这样的东西,但它不起作用

preg_match('/\[(.*)\]/', $str , $Fdesc);

先谢谢

2 个答案:

答案 0 :(得分:1)

你应该试试这个

$str = "[xyz.hlp] into asasa jkljk [xyp.htq] zff [xrt.thg]";

preg_match_all('/\[(.*?)\]/', $str , $Fdesc);

print_r($Fdesc[1]);

基于@sameerK提供的链接

答案 1 :(得分:0)

我得到了所需的输出但是通过使用循环和一些php字符串函数

<?php
$str = "[xyz.hlp] into asasa jkljk [xyp.htq] zff [xrt.thg]";
$i   = 0;
while ($i != strrpos($str, "]")) {
    $f_pos = strpos($str, "[", $i); // for first position
    $l_pos = strpos($str, "]", $f_pos + 1); // for the last position
    $value = substr($str, $f_pos, ($l_pos - $f_pos) + 1);
    echo $value;
    $i = $l_pos;
}
?>