Android日记之2012/02/12——Android中正则表达式使用
在项目中我们总会遇到一些字符匹配的时候,最典型的就是验证用户输入的邮箱或者手机号是否符合格式规范。那我们在做这些匹配的时候,可以有两种方式。
1、这是一种笨办法。就是自己根据项目的要求来写一个匹配的类,通过一个字符一个字符来匹配,从而得到自己想要的结果。
2、还有一种就是使用正则表达式。这是普遍都回通用的方法。Android中使用正则,只要3句话:
Patternpattern=Pattern.compile(reg),reg表示的是正则表达式
Matchermatcher=pattern.matcher(string),string表示的是需要匹配的字符
matcher.matcher(),这边就是直接返回一个boolean值,来表示正确与否
正则表达式用起来挺容易的,但是,正则表达式的书写很是头痛。基本的语法就不讲了,太琐碎了,网上相关的资源也比较多。还有就是正则表达式中的转义字符,我在2011年的12.28号那篇日记中写过了,也就不重复了。
这边就贴点平时常用的一些正则表达式
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ //email地址
^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ //url
^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$//年-月-日
^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$//月/日/年
^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$//Emil
^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$//电话号码
^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$//IP地址
(^\s*)|(\s*$)//首尾空格
^[a-zA-Z][a-zA-Z0-9_]{4,15}$//帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线)
^[1-9]*[1-9][0-9]*$//腾讯QQ号