`

10个你应该知道的Java正则表达式的例子

阅读更多

10个你应该知道的Java正则表达式的例子

 

[译]10个你应该知道的Java正则表达式的例子

2009年12月1日 小马 发表评论 阅读评论

正则表达式,用于验证用户输入的合法性是非常方便的,正好在网上看到了这篇文章,顺手翻译一下。

原文链接:http://www.mkyong.com/regular-expressions/10-java-regular-expression-examples-you-should-know/

声明:原创翻译,不足之处请多多指正,转载请注明出处!

正则表达式是一个编程的艺术,很难调试,学习和理解,但强大的功能,仍吸引不少开发者编写正则表达式。让我们探索一下下面10个实际应用中的正则表达式。

1. 用户名正则表达式模式

^[a-z0-9_-]{3,15}$
^                         # 行开始
  [a-z0-9_-]              # 匹配列表中的字符,a-z,0–9,下划线,连字符
            {3,15}        # 长度至少3个字符,最大长度为15
$                         # 行结束

2. 密码正则表达式模式

((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})
(                        # 组开始
    (?=.*\d)             # 必须包含一个数字 0-9
    (?=.*[a-z])          # 必须包含一个小写字符
    (?=.*[A-Z])          # 必须包含一个大写字符
    (?=.*[@#$%])         # 必须包含一个列表中的特殊字符"@#$%"
                .        # 检查所有字符串与前面的条件的匹配
                 {6,20}  # 长度至少为6个字符,最大长度为20
)                        # 组结束

3. 16进制颜色代码正则表达式模式

^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
^                       # 行开始
 #                      #   必须包含一个"#"符号
  (                     #   组#1开始
   [A-Fa-f0-9]{6}       #     列表中的任意字符串,长度为6
   |                    #     ..或者
   [A-Fa-f0-9]{3}       #     列表中的任意字符串,长度为3
  )                     #   组#1结束
$                       # 行结束

4. Email 正则表达式模式

^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$
^                            # 行开始
  [_A-Za-z0-9-]+             #   必须以中括号中的字符为起始字符[],必须包含一个或多个(+)
  (                          #   组#1开始
    \\.[_A-Za-z0-9-]+        #     接下来是一个点"."和中括号内的字符[],必须包含一个或者多个(+)
  )*                         #   组#1结束, 这个组是可选的(*)
    @                        #     必须包含一个"@"符号
     [A-Za-z0-9]+            #       接下来是中括号内的字符[],必须包含一个或者多个(+)
      (                      #         组 #2开始 – 一级TLD检查
       \\.[A-Za-z0-9]+       #           接下来是一个点"."和中括号内的字符[],必须包含一个或者多个(+)
      )*                     #         组#2结束,这个组是可选的(*)
      (                      #         组#3开始 – 二级TLD检查
       \\.[A-Za-z]{2,}       #           接下来是一个点"."和中括号内的字符[], 最小长度为2
      )                      #         组#3结束
$                            # 行结束

5. 图像文件扩展名正则表达式模式

([^\s]+(\.(?i)(jpg|png|gif|bmp))$)
(                         # 组#1开始
 [^\s]+                   #   必须包含一个或更多的任意字符(除了空格)
       (                  #     组#2开始
        \.                #       接下来是一个点"."
         (?i)             #       忽略后边字符的大小写检查
             (            #         组#3开始
              jpg         #           包含字符"jpg"
              |           #           ..或者
              png         #           包含字符"png"
              |           #           .. 或者
              gif         #           包含字符"gif"
              |           #           .. 或者
              bmp         #           包含字符"bmp"
             )            #         组#3结束
       )                  #     组#2结束
 $                        #   字符串的结束
)                         # 组#1结束

6. IP地址正则表达式模式

^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.
([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$
^                  # 行开始
 (                 #   组#1开始
  [01]?\\d\\d?     #     可以是1到2个数字. 如果出现3个数字, 必须以0或者1开始
                   #     例如 ([0-9], [0-9][0-9],[0-1][0-9][0-9])
    |              #     ...或者
  2[0-4]\\d        #     以2开始, 紧跟着是0-4,并且以任意数字结尾(2[0-4][0-9])
   |               #     ...或者
  25[0-5]          #     以2开始, 紧跟着是5,并且以0-5结尾 (25[0-5])
 )                 #   组#1结束
  \.               #   接下来是点"."
....               #   重复3次 (3x)
$                  # 行结束

7. 时间格式正则表达式模式

12-小时制时间正则表达式模式

(1[012]|[1-9]):[0-5][0-9](\\s)?(?i)(am|pm)
(                                  # 组#1开始
 1[012]                            #   以10, 11, 12开始
 |                                 #   或者
 [1-9]                             #   以1,2,...9开始
)                                  # 组#1结束
 :                                 #   接下来是一个冒号 (:)
  [0-5][0-9]                       #     接下来是0..5和0..9,意思是00到59
            (\\s)?                 #       接下来是一个空格(可选)
                  (?i)             #         下面的检查不区分大小写
                      (am|pm)      #           接下来是AM或者PM

24小时制时间正则表达式模式

([01]?[0-9]|2[0-3]):[0-5][0-9]
(                                  # 组#1开始
 [01]?[0-9]                        #   以0-9,1-9,00-09,10-19开始
 |                                 #   或者
 2[0-3]                            #   以20-23开始
)                                  # 组#1结束
 :                                 #   接下来是一个冒号(:)
  [0-5][0-9]                       #     接下来是0..5和0..9,意思是00到59

8. 日期格式 (dd/mm/yyyy) 正则表达式模式

(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)
(                          # 组#1开始
 0?[1-9]                   #   01-09或者1-9
 |                         #   ..或者
 [12][0-9]                 #   10-19或者20-29
 |                         #   ..或者
 3[01]                     #   30, 31
)                          # 组#1结束
  /                        #   接下来是一个"/"
   (                       #     组#2开始
    0?[1-9]                #       01-09或者1-9
    |                      #       ..或者
    1[012]                 #       10,11,12
    )                      #     组#2结束
     /                     #       接下来是一个"/"
      (                    #         组#3开始
       (19|20)\\d\\d       #           19[0-9][0-9]或者20[0-9][0-9]
      )                    #         组#3结束

9. HTML标签正则表达式模式

<("[^"]*"|'[^']*'|[^'">])*>
<                # 以"<"标签开始
 (               #   组#1开始
  "[^"]*"        #     只允许两个双引号成对出现-"string"
  |              #     ..或者
  '[^']*'        #     只允许两个单引号成对出现- 'string'
  |              #     ..或者
  [^'">]         #     不能出现单独的双引号、单引号和">"
 )               #   组#1结束
 *               #   0次或多次
>                # 以结束标签">"结束

10. HTML链接正则表达式模式

HTML中的A标签正则表达式模式

(?i)<a([^>]+)>(.+?)</a>
(              # 组#1开始
 ?i            #   所有的检查区分大小写
)              # 组#1结束
<a             # 以"<a"开始
  (            #   组#2开始
   [^>]+       #     除了(">")之外的任意字符,至少一个字符
  )            #   组#2结束
  >            #     接下来是">"
   (.+?)       #       匹配所有
        </a>   #         以"</a>结束

提取HTML链接正则表达式模式

\s*(?i)href\s*=\s*(\"([^"]*\")|'[^']*'|([^'">\s]+));
\s*                          # 可以以空格开始
  (?i)                       #   所有的检查是区分大小写的
     href                    #     接下来是一个"href"字
        \s*=\s*              #       等号两边都允许空格,
              (              #         组#1开始
               "([^"]*")     #           只允许2个双引号成对出现 - "string"
               |             #           ..或者
               '[^']*'       #           只允许2个单引号成对出现 - 'string'
               |             #           ..或者
               ([^'">]+)     #           或者不允许出现单独的单引号、双引号和">"
               )             #         组#1结束

个人签名

-------------------------------------

 

图盾 淘宝保护 保护图片 图片防盗

分享到:
评论

相关推荐

    java正则表达式使用例子

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或分割文本。在Android开发中,正则表达式尤其重要,因为它们可以帮助我们验证用户输入、处理文本数据或者进行复杂的...

    JAVA正则表达式大全

    以下是对这些文档标题所涉及的Java正则表达式知识点的详细解释: 1. **正则表达式之道** 这个主题可能涵盖了正则表达式的基础概念,包括元字符、字符类、量词和分组。元字符如`.`代表任意字符,`^`表示行首,`$`...

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

    这个合集提供的HTML和Java正则表达式实例,为开发者提供了一个快速参考的工具,帮助他们在开发过程中快速有效地实现数据验证功能。理解并熟练运用这些正则表达式,对于提高代码质量和用户体验都有极大的帮助。在实际...

    java正则表达式及例子 pdf

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,...通过阅读《Java 正则表达式的总结和一些小例子.pdf》和《Java正则表达式详解.pdf》,你将能够深入学习和实践更多正则表达式的用法,进一步提升编程技能。

    java正则表达式截取demo下载即可运行

    这个“java正则表达式截取demo”提供了一个可以直接运行的示例,帮助开发者理解如何在Java中使用正则表达式进行字符串截取。 在Java中,`java.util.regex`包提供了正则表达式相关的类,如`Pattern`和`Matcher`。`...

    Java正则表达式详解.pdf

    根据提供的文件信息,本文将详细介绍Java正则表达式的概念、基本语法及应用场景,并结合Jakarta-ORO库来展示如何在Java中应用正则表达式。 ### 一、正则表达式简介 #### 1.1 什么是正则表达式? 正则表达式是一种...

    Java根据正则表达式生成字符串—Xeger,automaton

    在这个例子中,我们创建了一个Xeger实例,然后调用其generate()方法,它将返回一个符合给定正则表达式(本例中为只包含字母和数字的字符串)的随机字符串。 另一方面,automaton(有限状态自动机)是一种计算模型,...

    Java正则表达式详解

    Java正则表达式是用于处理文本和...总的来说,Java正则表达式是一个强大的工具,通过理解和熟练运用,可以极大地提高文本处理的效率和准确性。无论是基础的字符匹配,还是复杂的模式查找,都能通过正则表达式轻松实现。

    java正则表达式 regx

    例如,以下代码展示了如何使用Java正则表达式检查字符串是否符合社会安全号码的格式: ```java import java.util.regex.*; public class Main { public static void main(String[] args) { String ssn = "123-12...

    python正则表达式例子

    根据提供的文件信息,我们...通过以上几个例子可以看出,正则表达式在实际编程中非常实用,可以帮助我们快速定位和提取数据,提高程序的效率和可维护性。掌握正则表达式的规则和技巧对于开发人员来说是一项宝贵的技能。

    java_zhengze.rar_正则表达式_正则表达式 java

    本资料"java_zhengze.rar"提供了对Java正则表达式的详细讲解,包括基本概念、元字符、预定义字符类以及各种匹配操作,对于Java开发者来说是一份非常实用的学习资源。 首先,我们来了解一下正则表达式的基石——元...

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

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

    java正则表达式例子

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。在Java中,正则表达式是通过`java.util.regex`包中的类和接口实现的。这个压缩包文件“正则表达式例子...

    java-正则表达式-分组引用介绍

    ### Java中的正则表达式:分组引用介绍 #### 概述 正则表达式是计算机科学中一种非常强大的文本处理工具,在Java等编程语言中广泛应用于字符串匹配、搜索替换等场景。当需要对正则表达式的部分结果进行进一步处理...

    java Xeger 根据正则表达式生成满足的随机数据

    例如,如果你有一个正则表达式"^[a-zA-Z0-9]{5,10}$",它表示一个由5到10个字母或数字组成的字符串。Xeger会根据这个规则生成长度在5到10之间的随机字母数字串。 在Java中使用Xeger,首先需要引入Apache Commons ...

    Java正则表达式简单应用

    这篇博客将带你了解Java正则表达式的简单应用,并结合两个示例文件`parse_redbend_log`和`eyesaver`进行讲解。 在Java中,正则表达式通常通过`java.util.regex`包中的类来使用,如`Pattern`和`Matcher`。`Pattern`...

Global site tag (gtag.js) - Google Analytics