PHP (use with preg_match)

%^(?:(?:https?|ftp)://)(?:\S+(?::\S*)?@|\d{1,3}(?:\.\d{1,3}){3}|(?:(?:[a-z\d\x{00a1}-\x{ffff}]+-?)*[a-z\d\x{00a1}-\x{ffff}]+)(?:\.(?:[a-z\d\x{00a1}-\x{ffff}]+-?)*[a-z\d\x{00a1}-\x{ffff}]+)*(?:\.[a-z\x{00a1}-\x{ffff}]{2,6}))(?::\d+)?(?:[^\s]*)?$%iu

PHP (with validate filter)

if (filter_var($url, FILTER_VALIDATE_URL) !== false)...

Python

http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+

Javascript

/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)/

HTML5

<‍input type="url" /‍>

Below is the regex used in type=”url” from RFC3986:

^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?

Perl

^(((ht|f)tp(s?))\://)?(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.(com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk)(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\;\?\'\\\+&%\$#\=~_\-]+))*$

Ruby

/\A(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?\z/i

Go (use the govalidator IsURL())

package mainimport ("fmt""github.com/asaskevich/govalidator")func main() {str := "http://www.urlregex.com"validURL := govalidator.IsURL(str)fmt.Printf("%s is a valid URL : %v \n", str, validURL)}

Objective-C

(http|https)://((\\w)*|([0-9]*)|([-|_])*)+([\\.|/]((\\w)*|([0-9]*)|([-|_])*))+

Swift

((?:http|https)://)?(?:www\\.)?[\\w\\d\\-_]+\\.\\w{2,3}(\\.\\w{2})?(/(?<=/)(?:[\\w\\d\\-./_]+)?)?

Use it in a function:

func canOpenURL(string: String?) -> Bool {let regEx = "((https|http)://)((\\w|-)+)(([.]|[/])((\\w|-)+))+"let predicate = NSPredicate(format:"SELF MATCHES %@", argumentArray:[regEx])return predicate.evaluateWithObject(string)
}

Usage:

if canOpenURL("http://www.urlregex.com") {print("valid url.")
} else {print("invalid url.")
}

Swift (use canOpenURL)

UIApplication.sharedApplication().canOpenURL(urlString)

Java

^(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]

VB.NET

(http(s)?://)?([\w-]+\.)+[\w-]+[.com]+(/[/?%&=]*)?

C#

^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$

MySQL

SELECT field FROM table
WHERE field
REGEXP "^(https?://|www\\.)[\.A-Za-z0-9\-]+\\.[a-zA-Z]{2,4}

Bonus: What does the following regex do?

/^1?$|^(11+?)\1+$/

http://urlregex.com/

完美的URL正则表达式相关推荐

  1. CAS5服务管理 url 正则表达式配置

    CAS5服务管理 url 正则表达式配置 url 正则表达式配置通配符语法 ^https*://([A-Za-z0-9_-]+\.)+edu\.cn(:\d*)?.* java代码测试示例 publi ...

  2. php 正则匹配http,php url正则表达式

    本文章收集了三种关于从字符串或文章内容中匹配url正则表达式的php代码,前二种函数是获取以域名为标题的http,后一种是匹配内容中的url地址并且保存到数组中哦. //方法一 $ereg_str[u ...

  3. django url 正则表达式收集

    django url 正则表达式收集 1 url(r'^about/$',views.about), url(r'^list/$',views.listing), 只匹配: localhost:800 ...

  4. RTSP URL正则表达式校验

    rtsp url正则表达式校验 rtsp://192.168.1.3对应: rtsp:\/\/\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3} rtsp://admin:passward ...

  5. python网址拼接_Python相对完美的URL拼接函数

    首先说下什么叫URL拼接,我们有这么一个HTML片段: click me 做为一只辛苦的爬虫,我们要跟踪到这个click me指向的页面,假设这个片段来自:http://www.xxxdu.com,那 ...

  6. Django中URL正则表达式匹配

    Django框架中的URL分发采用正则表达式匹配来进行,以下是正则表达式的基本规则: 官方演示代码: from django.conf.urls import urlfrom . import vie ...

  7. 邮箱 名字 地址url正则表达式

    /*** 常规name正则* @type {RegExp}*/ export const COMMON_NAME_REGEXP = /^[^&=~''!·|^/<>%!+*\\.' ...

  8. 匹配http url 正则表达式

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! loca ...

  9. 检查字符串是否为有效URL的最佳正则表达式是什么?

    如何检查给定的字符串是否是有效的URL地址? 我对正则表达式的了解是基础知识,因此我无法从网上已经看到的数百种正则表达式中进行选择. #1楼 function validateURL(textval) ...

最新文章

  1. 日志多租户架构下的Loki方案
  2. JS字符串的下划线命名和驼峰命名转换
  3. 网络推广专员教大家网站SEO优化中锚文本的使用技巧
  4. 【数理知识】《数值分析》李庆扬老师-第2章-插值法
  5. BelgiumTS交通数据集分类-pytorch版
  6. PJzhang:英国通信总部GCHQ开源产品-网络瑞士军刀CyberChef
  7. 130 MySQL字段完整性约束(重要)
  8. Pod install 慢, pod update 慢, Cocoapods setup下载缓慢,手动解决方案
  9. pygame下载 + 安装 + 为什么安装时会报错解答
  10. IOS支持IPv6 DNS64/NAT64网络
  11. Mongo Java按日期查询
  12. 制作简单的android小应用,安卓 Android之开发简单小应用(一)
  13. 考研加油站系统的设计与实现
  14. 算法基础--梯度消失的原因
  15. 解决Chrome播放视频闪屏黑屏无法播放
  16. Spring的AOP切面编程
  17. 蓝桥杯python组——猜生日
  18. c语言d1和f1的区别,讲点真话:当贝d1和f1区别有没有?测评哪个好?谁来分享使用心得...
  19. 结合高斯变异和维数决策逻辑的哈里斯鹰优化算法
  20. python doc转换成docx以及读取docx

热门文章

  1. 计算机基础操作模拟题,自学考试《计算机应用基础》操作模拟练习题(2006下
  2. 利用python实现多元线性回归确定喷墨大师的命中方向
  3. 微信开发专题---7微信公众号订阅号与服务号的区别
  4. Red Hat Enterprise Linux 各个版本以及发布日期
  5. C语言字符输入回车时停止,解决C语言输入单个字符屏蔽回车符的问题
  6. 【小教程】B站参数及API介绍
  7. 小猪佩奇代码话,我是社会程序员,分享一篇python画小猪佩奇代码!
  8. mate7 android 6 root权限管理,华为Mate7 6.0 root教程_华为Mate7获取6.0系统的root方法
  9. Android 全屏显示设置
  10. Android Trick 3: GridView动态加载数据情况下,选中状态的实现