0

のような構造を持つphpを使用してリンクを解析しようとしています[google](http://google.com)が、これまでのところ、次のようになっています。

"/\[(.+?)\]((.+?\))/is" 

私が仕事に就けない唯一の部分は、括弧が付いている部分です')'。

どんな助けでも素晴らしいでしょう!

[編集]

@jari-これはコードの一部です:

$find = array(
    "@\n@", 
    "/[**](.+?)[**]/is",
    "/\[(.+?)\]\((.+?)\)/is"
    );

$replace = array(
    "<br />",
    "<strong>$1</strong>",
    "<a href\"$1\" target=\"_blank\" rel=\"no follow\"></a>"
    );

$body = htmlspecialchars($body); 
$body = preg_replace($find, $replace, $body); 
return $body; 
4

2 に答える 2

1

括弧は特殊文字であり、通常は式内のサブパターンをマークするため、それらをエスケープする必要があります(角かっこで行ったように)。

"/\[(.+?)\]\((.+?)\)/is"
于 2013-02-17T22:01:57.043 に答える
0

次のようになります。

\[([^\]]+)]\([^)]+\)

私たちは[^x]これを使用しています。つまり、そうでないものはすべて一致しxます。
これを使用して、グループ1で、以降のすべてをキャプチャしまし[]。を使用する2番目のグループについても同じです[^)]+。ではないもの)

于 2013-02-17T22:03:57.030 に答える