`
morgan-java
  • 浏览: 56427 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

25种常用正则表达式

阅读更多
类中用到了 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;  
#      }  
分享到:
评论

相关推荐

    常用正则表达式汇总(文档).txt

    主要为大家分享了最全的常用正则表达式大全,包括校验数字、字符、一些特殊的需求等等,感兴趣的小伙伴们可以参考一下。 很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是...

    正则表达式大全 - 收集的最常用正则表达式

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。它通过预定义的模式来识别和操作字符串中的数据。以下是一些常见的正则表达式及其用途: 1. 匹配中文字符:`[u4e00-u9fa5]` - 这个正则...

    常用正则表达式大全.txt

    正则表达式是一种用于文本模式匹配的强大工具。通过定义一组规则来识别文本中的特定模式,正则表达式被广泛应用于各种场景,如数据验证、搜索替换等。 ### 数字验证 1. **纯数字验证**:只允许输入纯数字。 - ...

    常用正则表达式-常用正则表达式-常用正则表达式

    常用正则表达式-常用正则表达式-常用正则表达式 常用正则表达式-常用正则表达式-常用正则表达式

    javascript常用正则表达式大全

    javascript常用正则表达式大全,基本覆盖基本需求的正则表达式

    常用正则表达式HTML,JAVA合集

    在这个“常用正则表达式HTML,JAVA合集”中,我们主要关注的是HTML和Java环境下的正则表达式应用。 1. **HTML中的正则表达式**: 在HTML中,正则表达式通常用于表单验证,例如输入字段(如邮箱、电话号码、手机号码...

    最全的常用正则表达式大全

    ### 正则表达式知识点详解 #### 一、校验数字的正则表达式 **1.1 数字** - **表达式:** `^[0-9]*$` - **解释:** 匹配任意数量(包括0个)的数字。 - **应用场景:** 用于验证输入是否全为数字。 **1.2 n位的数字**...

    常用正则表达式 正则表达式

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。它通过一种特殊的语法来描述一个字符串集合,可以非常灵活地表示各种复杂的字符串格式...

    JS常用正则表达式

    ### JS常用正则表达式知识点解析 #### 一、电子邮件地址验证 **功能说明:** 验证输入的字符串是否符合标准电子邮件地址格式。 **正则表达式:** ```javascript /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/ ``` **...

    正则表达式-常用正则表达式大全

    ### 正则表达式-常用正则表达式大全 #### 一、正则表达式的概念与作用 正则表达式(Regular Expression),通常被简称为regex或regexp,是一种用于匹配字符串的强大工具。它广泛应用于文本搜索和替换操作,特别是...

    常用正则表达式.rar

    本压缩包"常用正则表达式.rar"提供了一些常见的正则表达式示例,主要包括校验数字、字符以及满足特殊需求的表达式。 1. **校验数字的表达式** - 验证整数:`^\d+$`,这将匹配任何由一个或多个数字组成的字符串。 ...

    常用正则表达式集合

    在这个“常用正则表达式集合”中,你可能会找到许多实用的模板,帮助你在处理字符串时提高效率。下面我们将深入探讨正则表达式的基本概念、语法以及一些常见用法。 1. **基本概念** - **模式匹配**:正则表达式是...

    100个常用正则表达式

    这个正则表达式用来匹配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正则表达式.zip

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...

    常用java正则表达式

    正则表达式是一种强大的工具,用于处理文本并查找模式。多种编程语言,包括Perl、PHP、Python、JavaScript以及Java等均内置了对正则表达式的支持。本文将详细介绍Java中正则表达式的使用方法,并通过Jakarta-ORO库来...

    正则表达式规则及常用正则表达式列举

    正则表达式(Regular Expression,简称regex)是用于匹配字符串的一种模式,广泛应用于文本处理、数据验证、搜索和替换等场景。它通过一系列特定的字符、符号和操作符来定义一个模式,以此来检查字符串是否符合这个...

    常用正则表达式生成软件 学习文档

    包含自动生成常用的正则表达式,如邮件地址、网址、ip、url、数字等等 还有正则表达式的学习帮助文档,让你好好学习正则表达式 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序...

    常用正则表达式搜索

    ### 常用正则表达式搜索 #### 概述 正则表达式(Regular Expression,简称 REGEXP)是用于处理字符串的强大工具,在文本搜索、替换等操作中扮演着核心角色。Perl 作为一种广泛应用于文本处理的语言,其正则表达式...

    正则表达式语法(常用的正则表达式)

    正则表达式语法 正则表达式是一个强大的字符串处理工具,广泛应用于窗体验证、文本处理等领域。...正则表达式是一种强大的字符串处理工具,具有广泛的应用前景。但是,正则表达式的语法复杂,需要我们认真学习和掌握。

Global site tag (gtag.js) - Google Analytics