小说网 找小说 无限小说 烟雨红尘 幻想小说 酷文学 深夜书屋

Linux系统编程(18)——正则表达式实用举例

 

匹配特定字符串:

只能输入长度为3的字符:"^.{3}$"。

只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。

只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。

只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。

只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。

只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。

 

 

正则表达式匹配身份证号码

身份证为15位或者18位,15位的全为数字,18位的前17位为数字,最后一位为数字或者大写字母”X“。

与之匹配的正则表达式:(^\d{15}$)|(^\d{17}([0-9]|X)$)

 

 

正则表达式匹配电子邮箱或者电子邮件地址

正则匹配表达式:/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i

 

国际域名格式如下:域名由各国文字的特定字符集、英文字母、数字及“-”(即连字符或减号)任意组合而成, 但开头及结尾均不能含有“-”,“-”不能连续出现。 域名中字母不分大小写。域名最长可达60个字节(包括后缀.com、.net、.org等)。

 

说明:

①/内容/i 构成一个不区分大小写的正则表达式;^ 匹配开始;$ 匹配结束。

②[a-z] E-Mail前缀必需是一个英文字母开头

③([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是空字符,也是匹配的,*表示0个或者多个。

④*表示0个或多个前面的字符.

⑤[a-z0-9]* 匹配0个或多个英文字母或者数字;[-_]? 匹配0个或1“-”,因为“-”不能连续出现。

⑥[a-z0-9]+ 匹配1个或多个英文字母或者数字,因为“-”不能做为结尾

⑦@ 必需有个有@

⑧([a-z0-9]*[-_]?[a-z0-9]+)+ 见上面([a-z0-9]*[-_]?[a-z0-9]+)*解释,但是不能为空,+表示一个或者为多个。

⑨[\.] 将特殊字符(.)当成普通字符;[a-z]{2,3} 匹配2个至3个英文字母,一般为com或者net等。

⑩([\.][a-z]{2})? 匹配0个或者1个[\.][a-z]{2}(比如.cn等) 我不知道一般.com.cn最后部份是不是都是两位的,如果不是请修改{2}为{起始字数,结束字数}

 

正则表达式匹配电话号码和手机号码

正则表达式     \d{3}-\d{8}|\d{4}-\d{7}

匹配         0511-4405222 |021-87888822

不匹配     02-552255 12345-784787

 

正则表达式     (^\([0]\d{2}|\d{4}\))(\d{6,7}$)

匹配         (021)1234567 |(0411)123456 | (000)000000

不匹配     (123)1234567 | 025123456 |0252345678

 

正则表达式匹配用户密码

密码形式可以根据开发需求自己设定,下面是匹配密码的例子:

 

正则表达式     ^[a-zA-Z]\w{5,17}$

匹配         以字母开头,长度在6~18之间,只能包含字符、数字和下划线

 

正则表达式匹配日期时间

正则表达式     ^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$

匹配         12:15 | 10:26:59 |22:01:15

不匹配     24:10:25 | 13:2:60

 

正则表达式     ^([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0]?[1-9]|[1][0-2])[./-]([0-9]{4}|[0-9]{2})$

匹配         10/03/1979 | 1-1-02 |01.1.2003

不匹配     10/03/197 | 09--02--2004 |01 02 03

 

正则表达式 ^([2-9]\d{3}((0[1-9]|1[012])(0[1-9]|1\d|2[0-8])|(0[13456789]|1[012])(29|30)|(0[13578]|1[02])31)|(([2-9]\d)(0[48]|[2468][048]|[13579][26])|(([2468][048]|[3579][26])00))0229)$

匹配         20000101 | 20051231 |20040229

不匹配     19990101 | 20053112 |20050229

 

正则表达式     ^([1-9]|1[0-2]|0[1-9]){1}(:[0-5][0-9][aApP][mM]){1}$

匹配         08:00AM | 10:00am |7:00pm

不匹配     13:00pm | 12:65am

 

正则表达式匹配IP地址

正则表达式 ^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$

匹配         127.0.0.1 |255.255.255.0 | 192.168.0.1

不匹配     1200.5.4.3 | abc.def.ghi.jkl| 255.foo.bar.1

 

正则表达式      ^((0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1})\.){3}(0|1[0-9]{0,2}|2[0-9]{0,1}|2[0-4][0-9]|25[0-5]|[3-9][0-9]{0,1})(?(\/)\/([0-9]|[1-2][0-9]|3[0-2])|)$

匹配         192.168.0.1 |192.168.0.1/32 | 255.255.0.0/1

不匹配     010.0.0.0 | 192.168.0.1/33| 256.0.1.55

 

正则表达式     ^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9]{1,2})){3}$

匹配         97.67.44.20 |199.154.37.214 | 127.0.0.1

不匹配     63.125.94.287 |140.370.a.187 | 94.923.1

 

正则表达式     /^(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])\/(\d{1}|[0-2]{1}\d{1}|3[0-2])$/

匹配         192.168.100.1/24 |0.0.0.0/0

不匹配     192.168.100.1/33 |0.0.0.0/90

 

正则表达式匹配汉字或中文

 

正则匹配中文汉字根据页面编码不同而略有区别:

GBK/GB2312编码:[x80-xff>]+ 或 [xa1-xff]+

UTF-8编码:[x{4e00}-x{9fa5}]+/u

 

posted on 2014-07-26 11:08  牛栏山1  阅读(149)  评论(0编辑  收藏  举报

导航