Android 正则表达式

元字符含义
.表示任意一个字符
\s空格字符(空格键,tab,换行,换页,回车)
\S非空格字符([^\s])
\d一个数字,(相当于[0-9])
\D一个非数字的字符,(相当于[^0-9])
\w一个单词字符(word character) (相当于[a-zA-Z_0-9])
\W一个非单词的字符,[^\w]
^一行的开始
$一行的结尾
\b一个单词的边界
\B一个非单词的边界
[]匹配方括号内的一个字符

表示次数的元字符

元字符含义
*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n或更多次数
{n,m}重复n到m次

正则表达式,最重要的就是匹配规则的书写,其实正则表达式,并不难,只要对其组成的元字符有一定的了解,就比较简单了
正则表达式,是验证字符串的神器,学会了将很大的缩短字符串处理所需要的事件和代码量
正则表达式的书写时由元字符组成的
上面的表格就是部分常用元字符,及其含义。
我们就用常见的判断手机号码的正则表达式来看看:

    public static boolean checkPhone(String phone) {
        //其中compile的参数就是正则表达式的所要执行的匹配的规则
        //前面小括号内别看有那么多东西,其实所匹配的数字只有3个
        // | 符号的意思就是或即从其中寻找能匹配上的字符  我们来减少点说
        //(13[0-9]|15[0-9]|153)
        //比如 字符串  13[0-9] 这个字符串所匹配的是一个长度为3的字符 前两位必须是13 最后一位必须是0-9中的一个
        //15[0-9]和上面的规则时一样的   而153就简单了 153 表示字符必须只能时153不能时其他的
        //(13[0-9]|15[0-9]|153) 和起来就表示 一个字符串必须满足3个规则中的一个才时true否则就是false
        //继续来看下面的规则 
        // 也就是说一个字符串的前三位必须满足下面8个规则中的一个
        //后面的\\d{8}表示 \\d==\d 只是因为java中转义字符的原因所以才要多加一个
        //上面的表格中已经写了 \d表示的时数字
        //{8} 表示的是循环匹配8次
        //总的 前面的3位数的匹配时验证 对应的电话号码段
        //后面的8位必须是数字 这样加起来就对8+3=11 为电话号码的长度
        Pattern pattern = Pattern
                .compile("^(13[0-9]|15[0-9]|153|15[6-9]|180|18[23]|18[5-9]|17[37])\\d{8}$");
        Matcher matcher = pattern.matcher(phone);

        if (matcher.matches()) {
            return true;
        }
        return false;
    }

也可以用一下这种方式直接匹配正则表达式,返回值时boolean

new String().matches("^(13[0-9]|15[0-9]|153|15[6-9]|180|18[23]|18[5-9]|17[37])\\d{8}$");

当然我说的还不够详细,如果想看更详细的,请看下面链接:
http://baike.baidu.com/link?url=wSJQPNvPjvO8wtR-tJWI21FBizUGb8GO7YJwvl603MyJ17B6qif0jNaKtLxXSOKUDHd75UHE-KeE3S8mB3Vg6a
http://www.cnblogs.com/yirlin/archive/2006/04/12/373222.html
http://www.jikexueyuan.com/course/809.html


2017/04/20 16:11
js平台正则判断日期格式:
正确格式示例:2000/01/01 00:00:00

    function checkDateTime(string) {
        var check = /^(\d{4})[/][0-1]\d[/][0-3]\d\s[0-2]\d[:][0-5]\d[:][0-5]\d$/;
        return string.match(check)
    }

2017/08/17 09:36

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值