博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux系统编程(18)——正则表达式实用举例
阅读量:5118 次
发布时间:2019-06-13

本文共 3199 字,大约阅读时间需要 10 分钟。

 

匹配特定字符串:

只能输入长度为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

 

转载于:https://www.cnblogs.com/new0801/p/6177020.html

你可能感兴趣的文章
EntityFrameWork 实现实体类和DBContext分离在不同类库
查看>>
新手算法学习之路----二叉树(在一个二叉查找树中插入一个节点)
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
基于C#编程语言的Mysql常用操作
查看>>
s3c2440实验---定时器
查看>>
MyEclipse10安装SVN插件
查看>>
[转]: 视图和表的区别和联系
查看>>
Regular Experssion
查看>>
图论例题1——NOIP2015信息传递
查看>>
uCOS-II中的任务切换-图解多种任务调度时机与问题
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
UseIIS
查看>>
集合体系
查看>>
vi命令提示:Terminal too wide
查看>>
引用 移植Linux到s3c2410上
查看>>
MySQL5.7开多实例指导
查看>>
[51nod] 1199 Money out of Thin Air #线段树+DFS序
查看>>