Php [title](http://)链接的正则表达式
我正在尝试使用php解析链接,其结构类似于Php [title](http://)链接的正则表达式,php,regex,hyperlink,Php,Regex,Hyperlink,我正在尝试使用php解析链接,其结构类似于[google](http://google.com),到目前为止,我已经做到了: "/\[(.+?)\]((.+?\))/is" 我唯一不能开始工作的部分是带括号的部分' 任何帮助都会很好 [编辑] @jari-这是代码的一部分: $find = array( "@\n@", "/[**](.+?)[**]/is", "/\[(.+?)\]\((.+?)\)/is" ); $replace = array(
[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;
$find=array(
“@\n@”,
“/[**](.+?)[**]/is”,
“/\[(.+?)\]\(.+?)\)/is”
);
$replace=数组(
“
”,
“$1”,
""
);
$body=htmlspecialchars($body);
$body=preg_replace($find,$replace,$body);
返回$body;
括号是一个特殊字符,通常在表达式中标记子模式,因此需要对其进行转义(顺便说一句,就像使用方括号一样):
它应该看起来像:
\[([^\]]+)]\([^)]+\)
我们正在使用[^x]
,这意味着,匹配任何不是x
的内容我们用它在第一组中捕获了
[
之后的所有内容,它不是]
。
使用
[^]+
的第二组也一样。任何非)
指定一个问题:您输入了什么,希望得到什么?您的开头(
)缺少一个反斜杠。但是将转义移到外部对,而不是内部对…\(.+?)\
这是一个更严格的正则表达式:
\[([^\]]+)]\([^)]+\)