php - 使用正则表达式验证特定域 URL

标签 php regex

我一直在尝试自己并在网上搜索来编写这个正则表达式,但没有成功。

我需要验证给定的 URL 是否来自特定域和格式正确的链接(在 PHP 中)。例如:

好的域名:example.com

来自 example.com 的非常好的 URL:

如此糟糕的 URL 不是来自 example.com:

一些注意事项: 我不关心“http”和“https”,但如果这对你很重要,那么总是假设“http” 将使用此正则表达式的代码是 PHP,因此要加分。

2010 年更新:

Gruber 添加了一个很棒的 URL 正则表达式:

?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))

查看他的帖子:An Improved Liberal, Accurate Regex Pattern for Matching URLs

最佳答案

你必须使用正则表达式吗? PHP 有很多内置函数来做这种事情。

filter_var($url, FILTER_VALIDATE_URL)

会告诉您 URL 是否有效,并且

    $domain = parse_url($url, PHP_URL_HOST);

会告诉您它所指的域。

它可能比一些疯狂的正则表达式更清晰、更易于维护。

关于php - 使用正则表达式验证特定域 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1074532/

相关文章:

iphone - 在为 iPhone UITextView 输入时建议 # 标签(如 Twitter)

regex - IIS 重写规则 - 忽略 localhost

java - 标点符号的正则表达式

php - 创建了一个搜索表单,该表单向 SQL 查询添加了条件,但由于 'AND' 语句而返回 0 个结果

php - 将图片/视频发布到 Twitter

PHP URL 问题

php - MySQL 服务器崩溃并无法启动 - 无法通过套接字 '/tmp/mysql.sock 连接到本地 MySQL 服务器

javascript - 如何在extjs中使用href.replace

javascript - 用于密码验证的 RegEx,仅特定字符

php - 无法使用 PHPMailer 发送包含正确字符的电子邮件