正则表达式简介及常用模式的正则表达式

在Web信息交互的过程,常常需要检验用户输入的数据是否合法。用户输入的内容均是字符的形式,所以常用正则表达式表示字符串来进行检验,并称字符串为模式,称此类检验方法为模式匹配。比如用户注册时常常要检验用户输入的邮箱、电话是否有效,邮件的正则表达式为:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+)$,判断邮件地址是否合法的代码为if(email.search("^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+)$")!=0)字符串的search方法会自动匹配字符串,如果成功则返回模式在字符串中的位置,如果失败则返回-1。

正则表达式的元字符有"\|[]()-^$*?+.{}",元字符不能直接加入元字符,需要加"\"前缀进行转义,例如"[a]"需要用"\[a\]"表示。

|:表示或,例如“a|aa|aaa”表示a或者aa或者aaa;[]:表示特定类型的字符,例如“[a|b]”表示a或者b;():表示分组,括号内的表达式作为一个整体; -:表示一段字符的范围,例如“[a-z]”表示所有的小写字母;^表示特定字符之外的字符,例如“[^a]”表示a以外的所有字符,^放在模式的最前面表示头部必须匹配;$:表示字符串必须以特定字符结尾,例如“qw$”表示以qw结尾如aqw,qweqweqw等;*:表示数量限定,表示0个或多个,例如“ab*”表示a、ab、abb、abbb等;?:表示数量限定,表示0或者1个;+:表示数量限定,表示1或多个;.:表示任意一个除换行符以外的字符;{}:表示可匹配的次数,{n}表示匹配n次,如as{2}表示ass,{n,}表示至少匹配n次,如aw{2,}表示aww、awww、awwww等,{n,m}表示至少匹配n次至多匹配m次。

正则表达式中的预定义词,\d:即[0-9],一个数字;\D:即[^0-9],一个非数字字符;\s:即[\t\n\x0B\f\r],一个空白字符;\S:一个非空白字符;\w:即[a-zA-Z_0-9],一个是字母数字或下划线的字符;\W:字母数字下划线之外的字符。

常用模式的正则表达式:

^\d+(\.\d+)*$:数字串

^\d+$:非负整数

^[0-9]*[1-9][0-9]*$:正整数

^-[0-9]*[1-9][0-9]*$:负整数

^(-?\d+)(\.\d+)?$:浮点数

[\u4e00-\u9fa5]:中文字符

^[A-Za-z]+$:英文字符串

^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$:邮箱E-mail地址

^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S(*)?$:URL




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值