`

JAVA中常用的正则表达式 总结

阅读更多

正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。


匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行

匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^\s*|\s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]\d{5}(?!\d)
评注:中国邮政编码为6位数字

匹配手机号码:
现在的手机号码增加了150,153,156,158,159,157,188,189
所以正则表达式如下: ^(13[0-9]|15[0|3|6|7|8|9]|18[8|9])\d{8}$
-------
正则验证手机号,忽略前面的0,支持130-139,150-159。忽略前面0之后判断它是11位的。
/^0*(13|15)\d{9}$/ ^0*
---------
手机号验证的正则为:
var reg =/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/;
var reg =/^0{0,1}(13[0-9]|15[0-9])[0-9]{8}$/;
移动手机号的验证正则为:
var reg =/^0{0,1}(13[4-9]|15[7-9]|15[0-2]|18[7-8])[0-9]{8}$/;
=============================================
<input type="text" id="mobile" name="mobile" onblur="if (value=='') {value='请输入您的手机号'}" onfocus="if(value=='请输入您的手机号') {value=''}" value="请输入您的手机号"/>
   
    <input type="button" name="china_mobile" value="校验是否是移动手机号" onclick="CheckChinaMobileID(document.getElementById('mobile').value)"/>
   
    <input type="button" name="is_mobile" value="校验是否是手机号" onclick="CheckIsMobile(document.getElementById('mobile').value)"/>    function CheckChinaMobileID(mobile){
       
        if (mobile==""){
            alert("请填写手机号码!");
            return false;
        }
        if(isNaN(mobile)||(mobile.length!=11)){
            alert("手机号码为11位数字!请正确填写!");
            return false;
        }
        var reg =/^0{0,1}(13[4-9]|15[7-9]|15[0-2]|18[7-8])[0-9]{8}$/;
        if(!reg.test(mobile))
        {
            alert("您的手机号码不是移动号码,请重新输入");
           
            return false;
        }
        alert("大爷,这个真是移动的手机号");
        return true;
    }
    function CheckIsMobile(mobile){
       
        if (mobile==""){
            alert("请填写手机号码!");
            return false;
        }
        if(isNaN(mobile)||(mobile.length!=11)){
            alert("手机号码为11位数字!请正确填写!");
            return false;
        }
       
        var reg =/^0{0,1}(13[0-9]|15[0-9])[0-9]{8}$/;
        if(!reg.test(mobile))
        {
            alert("您的手机号码不正确,请重新输入");
   
            return false;
        }
        alert("这个真是手机号,是哪的我不知道");
        return true;
    }
=============================================


匹配身份证:\d{15}|\d{18}
评注:中国的身份证为15位或18位

匹配ip地址:\d+\.\d+\.\d+\.\d+
评注:提取ip地址时有用

匹配特定数字:
^[1-9]\d*$    //匹配正整数
^-[1-9]\d*$   //匹配负整数
^-?[1-9]\d*$   //匹配整数
^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式

---------------------------
正则表达式--验证手机号码:13[0-9]{9}
实现手机号前带86或是+86的情况:^((\+86)|(86))?(13)\d{9}$
电话号码与手机号码同时验证:(^(\d{3,4}-)?\d{7,8})$|(13[0-9]{9}) 
提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F)  *=  *('|")?(\w|\\|\/|\.)+('|"|  *|>)?  
提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*  
提取信息中的图片链接:(s|S)(r|R)(c|C)  *=  *('|")?(\w|\\|\/|\.)+('|"|  *|>)?
提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)    
提取信息中的中国手机号码:(86)*0*13\d{9}    
提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}    
提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14} 
-------------------------------
更严格的手机号码正则表达式写法
文章分类:Java编程
要更加准确的匹配手机号码只匹配11位数字是不够的,比如说就没有以144开始的号码段,

 

故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下:

 

移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188

 

联通:130、131、132、152、155、156、185、186

 

电信:133、153、180、189、(1349卫通)

 

详见:[url=http://blog.myspace.cn/e/405268924.htm]http://blog.myspace.cn/e/405268924.htm[/url] 那么现在就可以正则匹配测试了,

 

Java代码
import java.io.IOException;  
import java.util.regex.Matcher;  
import java.util.regex.Pattern;  
 
public class ClassPathResource {  
    public static boolean isMobileNO(String mobiles){     
        Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");     
        Matcher m = p.matcher(mobiles);     
        System.out.println(m.matches()+"---");     
        return m.matches();     
    }     
    public static void main(String[] args) throws IOException {     
        System.out.println(ClassPathResource.isMobileNO("18616155153"));     
    }  

分享到:
评论

相关推荐

    Java正则表达式应用总结

    Java正则表达式应用总结

    java正则表达式总结

    java正则表达式总结,java正则表达式入门的好材料

    java正则表达式 过滤特殊字符的正则表达式

    Java 正则表达式是 Java 语言中的一种强大的文本处理工具,能够对字符串进行复杂的匹配、提取和替换操作。本文将详细介绍 Java 正则表达式在过滤特殊字符方面的应用。 过滤特殊字符的正则表达式 在 Java 中,使用...

    jJAVA正则表达式替换字符

    本资源文件是我自己总结的,其中包括5个类,这5个类的代码基本概括了java正则表达式替换String的多种情况,比如获取某个文件路径中盘符/后边的部分内容,提取"&lt;title&gt;XXXX&lt;/title&gt;"中的文字XXXX,用正则表达式获取指定...

    Java正则表达式的总结和一些小例子

    Java 正则表达式的总结和一些小例子 Java 正则表达式是 Java 编程语言中一个非常重要的组件,它可以用于文本显示、数据表示、查找键和许多其他目的。从 Java 1.4 开始,Java 核心 API 就引入了 java.util.regex ...

    正则表达式大全.docx

    该文件总结了一部分正则表达式,在学习判断用户名和密码的过程中会有所帮助,仅供参考,如果有总结不对的地方,请联系作者修改

    JavaScript常用正则表达式

    总结的js常用的正则表达式,如邮箱,手机号码,等等验证方法。

    正则表达式完整高清版

    《正则指引》针对作者在开发中遇到的实际问题,以及其他开发人员咨询的问题,总结出一套使用正则表达式解题的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三大部分:第一部分主要讲解正则表达式的基础...

    正则表达式全解及正则表达式学习心得

    包含所有正则表达式的内容,还有个人的总结与心得!!!

    Java正则表达式总结

    Java正则表达式,只需要看这个文档就可以掌握正则表达式,不需要在找资料了,希望对大家有意!

    JAVA正则表达式语法大全

    JAVA正则表达式语法大全总结,希望对大家有所帮助。。

    JAVA 正则表达式总结

    本文档对JAVA的正则表达式从语法规则到实例应用,都作了归纳总结,并附有完整的测试代码,可以直接编译运行。

    正则表达式语法总结

    这是一篇关于java的正则表达式的语法总结,里面详细介绍了关于如何使用正则表达式,进而仔细看完之后就可以自己设置邮箱、电话号码、电子邮箱、iP地址等等

    正则表达式学习大全(有了这个,几乎不用看别的资料了,详情见资源描述)

    1、揭开正则表达式的神秘面纱 2、半小时精通正则表达式 3、表单验证Validator v1.0.chm 4、正则表达式.chm 5、DEELX 正则表达式 6、java正则表达式入门文档 ...12、正则表达式总结 13、30分钟入门教程 14、日期校验.doc

    java正则表达式范例程序

    java正则表达式范例,有详细的注释,最基本的java正则表达式总结

    java正则表达式与进制转化总结

    正则表达式在java中的应用 与 java二、八、十、十六进制相互转化总结,与具体的示例,非常不错,欢迎下载使用。

    精通正则表达式~~~

    精通正则表达式第三版 搜集于网络 前言..........I 第1章:正则表达式入门.... 1 解决实际问题... 2 作为编程语言的正则表达式... 4 以文件名做类比... 4 以语言做类比... 5 正则表达式的知识框架... 6 对于...

    JAVA 正则表达式总结_V2

    本文档对JAVA的正则表达式从语法规则到实例应用,都作了归纳总结,并附有完整的测试代码,可以直接编译运行。

    正则表达式---------资料整理,适合新手学习使用,对正则表达式的学习很有帮助

    正则表达式知识点总结 正则表达式是强大的字符串匹配模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。下面是正则表达式的基本概念和运用方法: 1. 正则...

Global site tag (gtag.js) - Google Analytics