使用正则表达式从字符串中提取url

时间:2014-08-21 02:20:42

标签: php regex

我的字符串包含模式“a [main / subfolder],b”,我需要在[]之间提取字符串,所以这就是我做的事情

<?php
    $bs=explode(",",$breadcrumb);

    foreach($bs as $b):
        preg_match('/\[(.*?)\]/', $b, $a);

        if(!empty($a)&&trim($a[1])!=""){

            $b=substr($b,0,strpos($b,'['));

            $b="<a href=\"".site_url()."en/".$a[1]."\">".$b."</a>";
        }

?>
<span>&gt;</span>
<?php
    echo $b;
    endforeach;
?>

我能够提取诸如“a [path],b”之类的模式,但不能提取“a [main / subfolder],b”,所以我将正则表达式模式更改为/\[(.*?)(\/)*\]/但不起作用。我哪里做错了?

1 个答案:

答案 0 :(得分:0)

试试这个正则表达式:

/\[([^\]]*?)\]/

[^\]]将匹配除]

以外的所有字符

DEMO

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

Regular expression visualization

Debuggex Demo