java正则表达式 程序例子_10个你应该知道的Java正则表达式的例子

正则表达式是一个编程的艺术,很难调试,学习和理解,但强大的功能,仍吸引不少开发者编写正则表达式。让我们探索一下下面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或者PM24小时制时间正则表达式模式

([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)]+)>(.+?) (              # 组#1开始  ?i            #   所有的检查区分大小写 )              # 组#1结束 ]+       #     除了(">")之外的任意字符,至少一个字符   )            #   组#2结束   >            #     接下来是">"    (.+?)       #       匹配所有            #         以"结束提取HTML链接正则表达式模式 \s*(?i)href\s*=\s*(\"([^"]*\")|'[^']*'|([^'">\s]+)); \s*                          # 可以以空格开始   (?i)                       #   所有的检查是区分大小写的      href                    #     接下来是一个"href"字         \s*=\s*              #       等号两边都允许空格,               (              #         组#1开始                "([^"]*")     #           只允许2个双引号成对出现 - "string"                |             #           ..或者                '[^']*'       #           只允许2个单引号成对出现 - 'string'                |             #           ..或者                ([^'">]+)     #           或者不允许出现单独的单引号、双引号和">"                )             #         组#1结束

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值