gpt4 book ai didi

php - 如何修复此 URL 正则表达式以匹配字符串末尾的 URL?

转载 作者:搜寻专家 更新时间:2023-10-31 21:31:36 24 4
gpt4 key购买 nike

我发现这个很棒的 URL 与 regexp 匹配,来自另一个答案,它在字符串中获取 URL,但只有在它们后跟空格时才有效。

preg_replace('#(https?|ftp)://[^ ]+ #i', '', $s['Text']);

我该如何修改它,以便它也匹配位于字符串末尾且后面没有任何内容的 URL?

最佳答案

为了匹配各种类型的 URL,下面的代码可以帮助您:

<?php

$content = '<html>

<title>Random Website I am Crawling</title>

<body>

Click <a href="http://clicklink.com">here</a> for foobar

Another site is http://foobar.com';

$regex = "((https?|ftp)\:\/\/)?"; // SCHEME
$regex .= "([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?"; // User and Pass
$regex .= "([a-z0-9-.]*)\.([a-z]{2,4})"; // Host or IP
$regex .= "(\:[0-9]{2,5})?"; // Port
$regex .= "(\/([a-z0-9+\$_-]\.?)+)*\/?"; // Path
$regex .= "(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?"; // GET Query
$regex .= "(#[a-z_.-][a-z0-9+\$_.-]*)?"; // Anchor


$matches = array(); //create array
$pattern = "/$regex/";

preg_match_all($pattern, $content, $matches);

print_r(array_values(array_unique($matches[0])));
echo "<br><br>";
echo implode("<br>", array_values(array_unique($matches[0])));


?>

关于php - 如何修复此 URL 正则表达式以匹配字符串末尾的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29453830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com