类中用到了 jakarta-oro-2.0.jar 包,请大家自己在 apache网站下下载
在这是junit测试单元类我就不提交了,在main()方法中有几个小测试,有兴趣自己玩吧.
这个工具类目前主要有25种正规表达式(有些不常用,但那时才仔细深入的研究了一下正规,写上瘾了,就当时能想到的都写了):
1.匹配图象; 2 匹配email地址; 3 匹配匹配并提取url ; 4 匹配并提取http ;
5.匹配日期 6 匹配电话; 7 匹配身份证 8 匹配邮编代码
9. 不包括特殊字符的匹配 (字符串中不包括符号 数学次方号^ 单引号' 双引号" 分号; 逗号, 帽号: 数学减号- 右尖括号> 左尖括号< 反斜杠\ 即空格,制表符,回车符等
10 匹配非负整数(正整数 + 0) 11 匹配不包括零的非负整数(正整数 > 0)
12 匹配正整数 13 匹配非正整数(负整数 + 0)
14 匹配负整数; 15. 匹配整数 ;
16 匹配非负浮点数(正浮点数 + 0) 17. 匹配正浮点数
18 匹配非正浮点数(负浮点数 + 0) 19 匹配负浮点数;
20 .匹配浮点数; 21. 匹配由26个英文字母组成的字符串;
22. 匹配由26个英文字母的大写组成的字符串 23 匹配由26个英文字母的小写组成的字符串
24 匹配由数字和26个英文字母组成的字符串; 25 匹配由数字、26个英文字母或者下划线组成的字符串;
# package com.ygj.util;
#
# import java.util.*;
#
# import org.apache.oro.text.regex.*;
#
#
# /**
# * 类简介: 使用正则表达式验证数据或提取数据,类中的方法全为静态的
* 主要方法:1. isHardRegexpValidate(String source, String regexp)
#
区分大小写敏感的正规表达式批配
# * 2. isSoftRegexpValidate(String source, String regexp)
# * 不区分大小写的正规表达式批配
# * 3. getHardRegexpMatchResult(String source, String regexp)
# * 返回许要的批配结果集(大小写敏感的正规表达式批配)
# * 4. getSoftRegexpMatchResult(String source, String regexp)
# * 返回许要的批配结果集(不区分大小写的正规表达式批配)
# * 5 getHardRegexpArray(String source, String regexp)
# * 返回许要的批配结果集(大小写敏感的正规表达式批配)
# * 6. getSoftRegexpMatchResult(String source, String regexp)
# * 返回许要的批配结果集(不区分大小写的正规表达式批配)
# * 7. getBetweenSeparatorStr(final String originStr,final char leftSeparator,final char rightSeparator)
# * 得到指定分隔符中间的字符串的集合
# *
# * @mail wuzhi2000@hotmail.com
# * @author ygj
# *
# */
# public final class Regexp
# {
#
# /** 保放有四组对应分隔符 */
# static final Set SEPARATOR_SET=new TreeSet();
# {
# SEPARATOR_SET.add("(");
# SEPARATOR_SET.add(")");
# SEPARATOR_SET.add("[");
# SEPARATOR_SET.add("]");
# SEPARATOR_SET.add("{");
# SEPARATOR_SET.add("}");
# SEPARATOR_SET.add("<"</span><span>); </span> </li> <li ><span> SEPARATOR_SET.add(</span><span >">");
# }
#
#
# /** 存放各种正规表达式(以key->value的形式) */
# public static HashMap regexpHash = new HashMap();
#
# /** 存放各种正规表达式(以key->value的形式) */
# public static List matchingResultList = new ArrayList();
#
# private Regexp()
# {
#
# }
# /**
# * 返回 Regexp 实例
# * @return
# */
# public static Regexp getInstance()
# {
# return new Regexp();
# }
#
# /**
# * 匹配图象
# *
# * 格式: /相对路径/文件名.后缀 (后缀为gif,dmp,png)
# *
# * 匹配 : /forum/head_icon/admini2005111_ff.gif 或 admini2005111.dmp
# *
# * 不匹配: c:/admins4512.gif
# *
# */
# public static final String icon_regexp = "^(/{0,1}\\w){1,}\\.(gif|dmp|png|jpg)$|^\\w{1,}\\.(gif|dmp|png|jpg)$";
#
# /**
# * 匹配email地址
# *
# * 格式: XXX@XXX.XXX.XX
# *
# * 匹配 : foo@bar.com 或 foobar@foobar.com.au
# *
# * 不匹配: foo@bar 或 $$$@bar.com
# *
# */
# public static final String email_regexp = "(?:\\w[-._\\w]*\\w@\\w[-._\\w]*\\w\\.\\w{2,3}$)";
#
# /**
# * 匹配匹配并提取url
# *
# * 格式: XXXX://XXX.XXX.XXX.XX/XXX.XXX?XXX=XXX
# *
# * 匹配 : http://www.suncer.com 或news://www
# *
# * 提取(MatchResult matchResult=matcher.getMatch()):
# * matchResult.group(0)= http://www.suncer.com:8080/index.html?login=true
# * matchResult.group(1) = http
# * matchResult.group(2) = www.suncer.com
# * matchResult.group(3) = :8080
# * matchResult.group(4) = /index.html?login=true
# *
# * 不匹配: c:\window
# *
# */
# public static final String url_regexp = "(\\w+)://([^/:]+)(:\\d*)?([^#\\s]*)";
#
# /**
# * 匹配并提取http
# *
# * 格式: http://XXX.XXX.XXX.XX/XXX.XXX?XXX=XXX 或 ftp://XXX.XXX.XXX 或 https://XXX
# *
# * 匹配 : http://www.suncer.com:8080/index.html?login=true
# *
# * 提取(MatchResult matchResult=matcher.getMatch()):
# * matchResult.group(0)= http://www.suncer.com:8080/index.html?login=true
# * matchResult.group(1) = http
# * matchResult.group(2) = www.suncer.com
# * matchResult.group(3) = :8080
# * matchResult.group(4) = /index.html?login=true
# *
# * 不匹配: news://www
# *
# */
# public static final String http_regexp = "(http|https|ftp)://([^/:]+)(:\\d*)?([^#\\s]*)";
#
# /**
# * 匹配日期
# *
# * 格式(首位不为0): XXXX-XX-XX 或 XXXX XX XX 或 XXXX-X-X
# *
# * 范围:1900--2099
# *
# * 匹配 : 2005-04-04
# *
# * 不匹配: 01-01-01
# *
# */
# public static final String date_regexp = "^((((19){1}|(20){1})d{2})|d{2})[-\\s]{1}[01]{1}d{1}[-\\s]{1}[0-3]{1}d{1}$";// 匹配日期
#
# /**
# * 匹配电话
# *
# * 格式为: 0XXX-XXXXXX(10-13位首位必须为0) 或0XXX XXXXXXX(10-13位首位必须为0) 或
# * (0XXX)XXXXXXXX(11-14位首位必须为0) 或 XXXXXXXX(6-8位首位不为0) 或
# * XXXXXXXXXXX(11位首位不为0)
# *
# * 匹配 : 0371-123456 或 (0371)1234567 或 (0371)12345678 或 010-123456 或
# * 010-12345678 或 12345678912
# *
# * 不匹配: 1111-134355 或 0123456789
# *
# */
# public static final String phone_regexp = "^(?:0[0-9]{2,3}[-\\s]{1}|\\(0[0-9]{2,4}\\))[0-9]{6,8}$|^[1-9]{1}[0-9]{5,7}$|^[1-9]{1}[0-9]{10}$";
#
# /**
# * 匹配身份证
# *
# * 格式为: XXXXXXXXXX(10位) 或 XXXXXXXXXXXXX(13位) 或 XXXXXXXXXXXXXXX(15位) 或
# * XXXXXXXXXXXXXXXXXX(18位)
# *
# * 匹配 : 0123456789123
# *
# * 不匹配: 0123456
# *
# */
# public static final String ID_card_regexp = "^\\d{10}|\\d{13}|\\d{15}|\\d{18}$";
#
# /**
# * 匹配邮编代码
# *
# * 格式为: XXXXXX(6位)
# *
# * 匹配 : 012345
# *
# * 不匹配: 0123456
# *
# */
# public static final String ZIP_regexp = "^[0-9]{6}$";// 匹配邮编代码
#
#
# /**
# * 不包括特殊字符的匹配 (字符串中不包括符号 数学次方号^ 单引号' 双引号" 分号; 逗号, 帽号: 数学减号- 右尖括号> 左尖括号< 反斜杠\ 即空格,制表符,回车符等 )
# *
# * 格式为: x 或 一个一上的字符
# *
# * 匹配 : 012345
# *
# * 不匹配: 0123456
# *
# */
# public static final String non_special_char_regexp = "^[^'\"\\;,:-<>\\s].+$";// 匹配邮编代码
#
#
# /**
# * 匹配非负整数(正整数 + 0)
# */
# public static final String non_negative_integers_regexp = "^\\d+$";
#
# /**
# * 匹配不包括零的非负整数(正整数 > 0)
# */
# public static final String non_zero_negative_integers_regexp = "^[1-9]+\\d*$";
#
# /**
# *
# * 匹配正整数
# *
# */
# public static final String positive_integer_regexp = "^[0-9]*[1-9][0-9]*$";
#
# /**
# *
# * 匹配非正整数(负整数 + 0)
# *
# */
# public static final String non_positive_integers_regexp = "^((-\\d+)|(0+))$";
#
# /**
# *
# * 匹配负整数
# *
# */
# public static final String negative_integers_regexp = "^-[0-9]*[1-9][0-9]*$";
#
# /**
# *
# * 匹配整数
# *
# */
# public static final String integer_regexp = "^-?\\d+$";
#
# /**
# *
# * 匹配非负浮点数(正浮点数 + 0)
# *
# */
# public static final String non_negative_rational_numbers_regexp = "^\\d+(\\.\\d+)?$";
#
# /**
# *
# * 匹配正浮点数
# *
# */
# public static final String positive_rational_numbers_regexp = "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$";
#
# /**
# *
# * 匹配非正浮点数(负浮点数 + 0)
# *
# */
# public static final String non_positive_rational_numbers_regexp = "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$";
#
# /**
# *
# * 匹配负浮点数
# *
# */
# public static final String negative_rational_numbers_regexp = "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$";
#
# /**
# *
# * 匹配浮点数
# *
# */
# public static final String rational_numbers_regexp = "^(-?\\d+)(\\.\\d+)?$";
#
# /**
# *
# * 匹配由26个英文字母组成的字符串
# *
# */
# public static final String letter_regexp = "^[A-Za-z]+$";
#
# /**
# *
# * 匹配由26个英文字母的大写组成的字符串
# *
# */
# public static final String upward_letter_regexp = "^[A-Z]+$";
#
# /**
# *
# * 匹配由26个英文字母的小写组成的字符串
# *
# */
# public static final String lower_letter_regexp = "^[a-z]+$";
#
# /**
# *
# * 匹配由数字和26个英文字母组成的字符串
# *
# */
# public static final String letter_number_regexp = "^[A-Za-z0-9]+$";
#
# /**
# *
# * 匹配由数字、26个英文字母或者下划线组成的字符串
# *
# */
# public static final String letter_number_underline_regexp = "^\\w+$";
#
# /**
# * 添加正规表达式 (以key->value的形式存储)
# *
# * @param regexpName
# * 该正规表达式名称 `
# * @param regexp
# * 该正规表达式内容
# */
# public void putRegexpHash(String regexpName, String regexp)
# {
# regexpHash.put(regexpName, regexp);
# }
#
# /**
# * 得到正规表达式内容 (通过key名提取出value[正规表达式内容])
# *
# * @param regexpName
# * 正规表达式名称
# *
# * @return 正规表达式内容
# */
# public String getRegexpHash(String regexpName)
# {
# if (regexpHash.get(regexpName) != null)
# {
# return ((String) regexpHash.get(regexpName));
# }
# else
# {
# System.out.println("在regexpHash中没有此正规表达式");
# return "";
# }
# }
#
# /**
# * 清除正规表达式存放单元
# */
# public void clearRegexpHash()
# {
# regexpHash.clear();
# return;
# }
#
# /**
# * 大小写敏感的正规表达式批配
# *
# * @param source
# * 批配的源字符串
# *
# * @param regexp
# * 批配的正规表达式
# *
# * @return 如果源字符串符合要求返回真,否则返回假 如: Regexp.isHardRegexpValidate("ygj@suncer.com.cn",email_regexp) 返回真
# */
# public static boolean isHardRegexpValidate(String source, String regexp)
# {
#
# try
# {
# // 用于定义正规表达式对象模板类型
# PatternCompiler compiler = new Perl5Compiler();
#
# // 正规表达式比较批配对象
# PatternMatcher matcher = new Perl5Matcher();
#
# // 实例大小大小写敏感的正规表达式模板
# Pattern hardPattern = compiler.compile(regexp);
#
# // 返回批配结果
# return matcher.contains(source, hardPattern);
#
# }
# catch (MalformedPatternException e)
# {
# e.printStackTrace();
#
# }
# return false;
# }
分享到:
相关推荐
主要为大家分享了最全的常用正则表达式大全,包括校验数字、字符、一些特殊的需求等等,感兴趣的小伙伴们可以参考一下。 很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是...
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。它通过预定义的模式来识别和操作字符串中的数据。以下是一些常见的正则表达式及其用途: 1. 匹配中文字符:`[u4e00-u9fa5]` - 这个正则...
正则表达式是一种用于文本模式匹配的强大工具。通过定义一组规则来识别文本中的特定模式,正则表达式被广泛应用于各种场景,如数据验证、搜索替换等。 ### 数字验证 1. **纯数字验证**:只允许输入纯数字。 - ...
常用正则表达式-常用正则表达式-常用正则表达式 常用正则表达式-常用正则表达式-常用正则表达式
javascript常用正则表达式大全,基本覆盖基本需求的正则表达式
在这个“常用正则表达式HTML,JAVA合集”中,我们主要关注的是HTML和Java环境下的正则表达式应用。 1. **HTML中的正则表达式**: 在HTML中,正则表达式通常用于表单验证,例如输入字段(如邮箱、电话号码、手机号码...
### 正则表达式知识点详解 #### 一、校验数字的正则表达式 **1.1 数字** - **表达式:** `^[0-9]*$` - **解释:** 匹配任意数量(包括0个)的数字。 - **应用场景:** 用于验证输入是否全为数字。 **1.2 n位的数字**...
正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。它通过一种特殊的语法来描述一个字符串集合,可以非常灵活地表示各种复杂的字符串格式...
### JS常用正则表达式知识点解析 #### 一、电子邮件地址验证 **功能说明:** 验证输入的字符串是否符合标准电子邮件地址格式。 **正则表达式:** ```javascript /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/ ``` **...
### 正则表达式-常用正则表达式大全 #### 一、正则表达式的概念与作用 正则表达式(Regular Expression),通常被简称为regex或regexp,是一种用于匹配字符串的强大工具。它广泛应用于文本搜索和替换操作,特别是...
本压缩包"常用正则表达式.rar"提供了一些常见的正则表达式示例,主要包括校验数字、字符以及满足特殊需求的表达式。 1. **校验数字的表达式** - 验证整数:`^\d+$`,这将匹配任何由一个或多个数字组成的字符串。 ...
在这个“常用正则表达式集合”中,你可能会找到许多实用的模板,帮助你在处理字符串时提高效率。下面我们将深入探讨正则表达式的基本概念、语法以及一些常见用法。 1. **基本概念** - **模式匹配**:正则表达式是...
这个正则表达式用来匹配Unicode范围内的中文字符,其范围是从4e00到9fa5,涵盖了大部分常用汉字。 2. 匹配双字节字符:`[^x00-xff]` 双字节字符通常指非ASCII字符,包括中文、日文、韩文等。这个表达式用来匹配...
二、常用正则表达式 1. 验证邮箱地址:`/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/` 2. 验证电话号码:`/\d{3}-\d{8}|\d{4}-\d{7}/` 3. 匹配URL:`/(http|https)?:\/\/[\w.-]+(\.[\w.-]+)+([\w.,@?^=%&:\...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...
正则表达式是一种强大的工具,用于处理文本并查找模式。多种编程语言,包括Perl、PHP、Python、JavaScript以及Java等均内置了对正则表达式的支持。本文将详细介绍Java中正则表达式的使用方法,并通过Jakarta-ORO库来...
正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。它通过一系列特定的字符、符号和操作符来定义一个模式,以此来检查字符串是否符合这个...
包含自动生成常用的正则表达式,如邮件地址、网址、ip、url、数字等等 还有正则表达式的学习帮助文档,让你好好学习正则表达式 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序...
### 常用正则表达式搜索 #### 概述 正则表达式(Regular Expression,简称 REGEXP)是用于处理字符串的强大工具,在文本搜索、替换等操作中扮演着核心角色。Perl 作为一种广泛应用于文本处理的语言,其正则表达式...
正则表达式语法 正则表达式是一个强大的字符串处理工具,广泛应用于窗体验证、文本处理等领域。...正则表达式是一种强大的字符串处理工具,具有广泛的应用前景。但是,正则表达式的语法复杂,需要我们认真学习和掌握。