通常写一个合适的正则表达式是比较耗费时间的,因此我们可以保留一些常用的正则表达式以备不时之需。但是需要说明的是,没有任何一个人敢说自己写的正则表达式是百分之百严谨的,而且也没有百分之百相同的匹配需求,因此这里只是列举我自己写的几个常用的正则表达式,欢迎大家留言讨论。
说明: 下面只是一些简单的匹配规则,实际情况中需要我们根据具体情况再这些正则表达式的首部和尾部加上相应的边界符,如:^, $, \A, \Z, \b, \B等
匹配一个网络地址(URL)
需要说明的是,网络地址不一定是一个网页地址(http或https链接),还可能是ftp地址等。如果我们要匹配特定协议的网络地址,如http或http链接可以这样写:
匹配一个IP地址
最简单的写法:
严谨一点的写法:
或
匹配一个邮箱地址
最简单的写法:
严谨一点的写法(保证只出现一个@符):
如果要非常严谨的话,就要区分不同的邮箱了,因为网易(126邮箱,163邮箱)、qq邮箱、hotmail邮箱以及gmail邮箱对邮箱名称中可以包含的字符都有不同的要求。
匹配网易邮箱:6-18个字符,只能包含字母、数字和下划线,且只能以字母开头
匹配qq邮箱:3-18个字符,只能包含字母、数字、点、减号和下划线
如果要多个邮箱的严谨匹配用一个正则表达式来匹配,比如要匹配网易邮箱和qq邮箱可以这样写:
当然,也可以分别匹配多个正则表达式,再通过程序逻辑来得到最后的结果
匹配密码是否合法:
要求比较简单的情况,比如只要求为非空字符且限定密码长度为6-18位
要求比较复杂的情况,比如必须同时包含含数字、大小字母、小写字母和标点符号,这就需要用到前面所说的正则表达式的特殊构造了(?=…), (?!=…)
如果要求必须同时包含且只能包含数字、大小字母、小写字母和标点符号,可以这样写:
匹配大陆身份证号码(15位或18位)
匹配日期(年-月-日)
24小时制时间(小时:分钟:秒)
其他常用正则表达式
再次说明,实际情况中需要我们根据具体情况再这些正则表达式的首部和尾部加上相应的边界符,如:^, $, \A, \Z, \b, \B等