在[code]和[php]标记中查找URL

在[code]和[php]标记中查找URL,php,regex,Php,Regex,我的字符串是这样的: $string = ' Link_1: [code]This is a textual line. www.google.com This is a textual line.[/code] Link_2: [php]This is a textual line. www.google.com This is a textual line.[/php] '; Link_1: [code]This is a textual line. LINK HIDDEN This i

我的字符串是这样的:

$string = '
Link_1: [code]This is a textual line.
www.google.com
This is a textual line.[/code]

Link_2: [php]This is a textual line.
www.google.com
This is a textual line.[/php]
';
Link_1: [code]This is a textual line.
LINK HIDDEN
This is a textual line.[/code]

Link_2: [php]This is a textual line.
LINK HIDDEN
This is a textual line.[/php]
我想使用正则表达式,以便替换此字符串中的URL,并返回如下结果:

$string = '
Link_1: [code]This is a textual line.
www.google.com
This is a textual line.[/code]

Link_2: [php]This is a textual line.
www.google.com
This is a textual line.[/php]
';
Link_1: [code]This is a textual line.
LINK HIDDEN
This is a textual line.[/code]

Link_2: [php]This is a textual line.
LINK HIDDEN
This is a textual line.[/php]

我是一个正则表达式noob,因此请帮助我找到一个正确的正则表达式以获得上述结果,谢谢你

使用积极的前瞻来检查将要匹配的链接,这些链接后面不会有结束php或代码标记

$content = <<<EOS
Link_1: [code]This is a textual line.
www.google.com
This is a textual line.[/code]

Link_2: [php]This is a textual line.
www.google.com
This is a textual line.[/php]
EOS;
$needle = '~(?:https?://)?(?:www\.)(?:[^.\s]+)(?:\.[^.\n\s]+)*\.\w{2,4}(?=(?:(?!\[/?(?:code|php)])[\S\s])*\[/(?:code|php)])~m';
echo preg_replace($needle,'LINK HIDDEN',$content);

嗨,阿维纳什,我很抱歉,但我不知道如何为此编写正则表达式:(这个怎么样?我试过这个:
$message=preg\u replace(/(?:https?:/)?(?:www\)(?:[^.\s]+)(?:\.....^.\n\s]+)*。\w{2,4}(=(?:(?!\[/(?:code | php)]){\s])*/(?:code{php)]*/(?:code}/m“,“$error”,“,”链接,{code}但隐藏的消息是完整的(我现在试着这样做:
$message=preg\u replace(“((?:https?:/)(?:www\)(?:[^.\s]+)(?:\.[^..\n\s]+)*\。\w{2,4}((?:(?!\[/(?:code | php)])[\s\s]**[(?:code | php)]),“{$error\u message u-link,{$message code}>,它什么也没做,但它什么也没做:(尝试了):(它对我有用..regex没有问题,我认为问题可能出在代码本身。my[code]和[php]标记是以这样的方式创建的,即在其中发布的每个链接都不会创建超链接,我的意思是链接完全没有标记。使用您的正则表达式,它没有匹配和替换,这是与此相关的还是可能是另一个问题?发布一个复制此行为的示例。请参见:注意非超链接的链接