`

java使用正则表达式——实例

    博客分类:
  • java
阅读更多
网上关于java使用正则的现成的例子不多,发一个以前写的一个类,供大家参考。

这个类基本满足了平常的需要,有其他需要的我再添加

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author        Der    
 * @date          2006-10-23
 * @packeage_name regex
 * 
 */
public class RegexChk
{

	public  boolean startCheck(String reg,String string)
	{
		boolean tem=false;
		
		Pattern pattern = Pattern.compile(reg);
		Matcher matcher=pattern.matcher(string);
		
		tem=matcher.matches();
		return tem;
	}
	

         /**
	 * 检验整数,适用于正整数、负整数、0,负整数不能以-0开头, 
          * 正整数不能以0开头
	 * 
	 * */
	public boolean checkNr(String nr)
	{
		String reg="^(-?)[1-9]+\\d*|0";
		return startCheck(reg,nr);
	}

	/**
	 * 手机号码验证,11位,不知道详细的手机号码段,只是验证开头必须是1和位数
	 * */
	public boolean checkCellPhone(String cellPhoneNr)
	{
		String reg="^[1][\\d]{10}";
		return startCheck(reg,cellPhoneNr);
	}
	
	/**
	 * 检验空白符
	 * */
	public boolean checkWhiteLine(String line)
	{
		String regex="(\\s|\\t|\\r)+";
		
		return startCheck(regex,line);
	}
	
	
	/**
	 * 检查EMAIL地址
	 * 用户名和网站名称必须>=1位字符
	 * 地址结尾必须是以com|cn|com|cn|net|org|gov|gov.cn|edu|edu.cn结尾
	 * */
	public boolean checkEmailWithSuffix(String email)
	{
		String regex="\\w+\\@\\w+\\.(com|cn|com.cn|net|org|gov|gov.cn|edu|edu.cn)";
		
		return startCheck(regex,email);
	}
	
	
	/**
	 * 检查EMAIL地址
	 * 用户名和网站名称必须>=1位字符
	 * 地址结尾必须是2位以上,如:cn,test,com,info
	 * */
	public boolean checkEmail(String email)
	{
		String regex="\\w+\\@\\w+\\.\\w{2,}";
		
		return startCheck(regex,email);
	}
	
	/**
	 * 检查邮政编码(中国),6位,第一位必须是非0开头,其他5位数字为0-9
	 * */
	public boolean checkPostcode(String postCode)
	{
		String regex="^[1-9]\\d{5}";
		return startCheck(regex,postCode);
	}
	
	/**
	 * 检验用户名
	 * 取值范围为a-z,A-Z,0-9,"_",汉字,不能以"_"结尾
	 * 用户名有最小长度和最大长度限制,比如用户名必须是4-20位
	 * */
	public boolean checkUsername(String username,int min,int max)
	{
		String regex="[\\w\u4e00-\u9fa5]{"+min+","+max+"}(?<!_)";
		return startCheck(regex,username);
	}
	/**
	 * 检验用户名
	 * 取值范围为a-z,A-Z,0-9,"_",汉字,不能以"_"结尾
	 * 有最小位数限制的用户名,比如:用户名最少为4位字符
	 * */
	public boolean checkUsername(String username,int min)
	{
		//[\\w\u4e00-\u9fa5]{2,}?
		String regex="[\\w\u4e00-\u9fa5]{"+min+",}(?<!_)";
		
		return startCheck(regex,username);
	}
	
	/**
	 * 检验用户名
	 * 取值范围为a-z,A-Z,0-9,"_",汉字
	 * 最少一位字符,最大字符位数无限制,不能以"_"结尾
	 * */
	public boolean checkUsername(String username)
	{
		String regex="[\\w\u4e00-\u9fa5]+(?<!_)";
		return startCheck(regex,username);
	}
	
	/**
	 *  查看IP地址是否合法
	 * */
	public boolean checkIP(String ipAddress)
	{
		String regex="(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +
				     "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +
				     "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +
				     "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])";
		
		return startCheck(regex,ipAddress);
	}
	
	/**
	 * 验证国内电话号码
	 * 格式:010-67676767,区号长度3-4位,必须以"0"开头,号码是7-8位
	 * */
	public boolean checkPhoneNr(String phoneNr)
	{
		String regex="^[0]\\d{2,3}\\-\\d{7,8}";
		
		return startCheck(regex,phoneNr);
	}
	
	/**
	 * 验证国内电话号码
	 * 格式:6767676, 号码位数必须是7-8位,头一位不能是"0"
	 * */
	public boolean checkPhoneNrWithoutCode(String phoneNr)
	{
		String reg="^[1-9]\\d{6,7}";
		
		return startCheck(reg,phoneNr);
	}
	
	/**
	 * 验证国内电话号码
	 * 格式:0106767676,共11位或者12位,必须是0开头
	 * */
	public boolean checkPhoneNrWithoutLine(String phoneNr)
	{
		String reg="^[0]\\d{10,11}";
		
		return startCheck(reg,phoneNr);
	}
	
	/**
	 * 验证国内身份证号码:15或18位,由数字组成,不能以0开头
	 * */
	public boolean checkIdCard(String idNr)
	{
		String reg="^[1-9](\\d{14}|\\d{17})";
		
		return startCheck(reg,idNr);
	}
	
	/**
	 * 网址验证<br>
	 * 符合类型:<br>
	 *         http://www.test.com<br>
	 *         http://163.com
	 * */
	public boolean checkWebSite(String url)
	{
		//http://www.163.com
		String reg="^(http)\\://(\\w+\\.\\w+\\.\\w+|\\w+\\.\\w+)";
		
		return startCheck(reg,url);
	}
}
分享到:
评论
2 楼 loovejava 2013-09-11  
1 楼 aids198311 2008-06-02  
不错 收藏了!

相关推荐

    Java正则表达式——知识积累

    这篇博文将深入探讨Java正则表达式的使用和相关API。 在Java中,正则表达式的核心类是`java.util.regex.Pattern`,它负责编译和存储正则表达式。通过`Pattern.compile(String regex)`方法,我们可以创建一个`...

    java正则表达式PPT

    使用 Java 正则表达式可以提高编程效率,特别是在处理文本数据时。与传统编程方法相比,使用正则表达式可以减少代码行数和复杂度。 Java 正则表达式基础知识 ------------------------- ### 句点符号(.) 句点...

    正则表达式——详细讲解平衡组

    ”匹配文本内容”asp163″,稍懂正则表达式的人都知道可以匹配,但是你知道他的匹配过程吗?如果你不太清楚,那么下面的内容,对你来说可能不太适合,或许,看的太吃力且无法领悟平衡组的用法。因此,我建议你先了解...

    正则表达式应用总结

    Java通过`java.util.regex`包中的两个核心类——`Pattern`和`Matcher`——提供了对正则表达式的支持。 1. **Pattern** 类:它负责编译正则表达式字符串为模式对象。这个模式对象可以被用来创建多个`Matcher`实例,...

    正则表达式全面资料(请下载另一个免费的,别怪我没有提醒)

    "正则表达式的使用.doc"和"perl正则表达式.doc"可能包含更具体的实践应用和Perl语言相关的正则表达式知识。 "OReilly.Mastering.Regular.Expressions.3rd.Edition.Aug.2006.chm"是一本经典的专业书籍——《精通正则...

    js:校验IPv6地址的正则表达式

    jquery 正整数数字校验正则表达式JavaScript正则表达式校验非零的正整数实例利用js正则表达式校验正数、负数、和小数Javascript校验密码复杂度的正则表达式最全的常用正则表达式大全——包括校验数字、字符、一些...

    简单入门正则表达式(侧重原理,附属实例)

    最后,本章将专注于Java和.NET平台下正则表达式的使用,包括API调用、编译正则表达式、执行匹配和替换操作等,并可能包含一些平台特有功能的介绍。 通过这个压缩包的学习,你将能够掌握正则表达式的基本概念和常用...

    C#中的文本解析大师:精通正则表达式

    - 使用`Regex`类的构造函数创建正则表达式实例。 - 示例代码: ```csharp using System.Text.RegularExpressions; string pattern = @"\b\w+@\w+\.\w+\b"; // 简单的电子邮件正则表达式 Regex regex = new ...

    正则表达式的基础语法

    在Java中,正则表达式主要通过`java.util.regex`包来实现,其中包含了两个核心类——`Pattern`和`Matcher`。 - **Pattern**:用于编译正则表达式,并将其转换为可执行的形式。`Pattern`对象是不可变的,这意味着...

    Java正则表达式Java正则表达式

    ### Java正则表达式API使用 Java中的正则表达式主要通过`java.util.regex`包下的两个核心类来实现:`Pattern`和`Matcher`。 - **Pattern**:用于编译正则表达式,生成可以被`Matcher`使用的模式对象。 - `Pattern...

    RegexBuddyPortableCN (1).zip

    为了解决这个问题,出现了专门的测试软件——RegexBuddy,而"RegexBuddyPortableCN (1).zip"正是这款软件的便携式中文版本,它为开发者和程序员提供了一个直观且高效的正则表达式测试环境。 RegexBuddy不仅仅是一个...

    JGsoft.RegexMagic.1.3.1.Retail.rar

    3. **多平台支持**:RegexMagic不仅支持多种正则表达式语法,包括Perl、.NET、Java、JavaScript等,还兼容多个操作系统,确保你在不同环境下都能有效使用。 4. **学习资源**:对于正则表达式初学者,RegexMagic还...

    只能输入数字小数点负号正则

    本文将详细介绍一个特定的正则表达式应用场景——如何使用正则表达式来限制用户只能输入数字、小数点以及负号,并通过具体的实例加以解释。 #### 1. 正则表达式基础概念 正则表达式(Regular Expression)是一种...

    Java的2本经典

    2. **Java正则API**:Pattern类、Matcher类的用法,以及如何编译和匹配正则表达式。 3. **模式匹配**:查找、替换、分割字符串,以及在Java中使用正则表达式的各种方法。 4. **高级特性**:预查(\Q...\E)、环视...

    正则匹配原理之——逆序环视深入.rar

    - 大多数现代编程语言,如Java、Python、JavaScript等,都支持正则表达式中的逆序环视。 - 在不同的编程环境中,可能需要使用不同的语法来启用这些特性。例如,在JavaScript中,需要开启`u`标志才能使用完整的...

    java去除空格、标点符号的方法实例.docx

    在Java中,去除标点符号可以使用replaceAll()方法和正则表达式。 1. 使用replaceAll()方法去除标点符号 可以使用正则表达式 `\p{Punct}` 匹配标点符号,并使用replaceAll()方法去除标点符号。例如: ```java ...

    RegExTest.rar

    《正则表达式实战解析——基于Java 7》 在编程世界中,正则表达式(Regular Expression,简称RegEx)是一种强大的文本处理工具,它能够帮助我们进行复杂的字符串匹配、查找、替换和提取等操作。Java语言提供了对...

Global site tag (gtag.js) - Google Analytics