Java正则表达式1

Java正则表达式

字符类

字符

说明

[abc]

a,bc中的任意一个字符

[^abc]

a,bc中的字符外的任意一个字符(补)

[a-zA-Z]

AZaz中的任意一个字符(范围)

[a-d[m-p]]

ad,mp中的任意一个字符:[a-dm-p] ()

[a-z&&[def]]

d ,e 或者f()

[a-z&&[^def]]

z但除def外(减)

  说明:[]中只匹配单个字符.

  因为-表示范围,所以要匹配-要使用\-

预定义字符

字符

说明

.

通配符,匹配除最后行终止符\n之外的任意字符。

\

转义字符,如\\匹配\,\.匹配.\-匹配-等。

\d

数字:[0-9]

\D

非数字:[^0-9]

\s

空格字符:[\t\n\x0B\f\r]

\S

非空格字符:[^\s]

\w

单词字符:[a-bA-Z_0-9]

\W

非单词字符:[^\w]

 

 

 

 

 

 

量词

字符

说明

贪婪模式(Greedy )(默认)

勉强模式(Reluctant)

占有模式(Possessive) 

 

X?     

X??

X?+

匹配X ,01

X*

X*?

X*+

匹配X ,至少0(00次以上)

X+

X+

X++

匹配X ,至少1(11次以上)

X{n}     

X{n}?

X{n}+

匹配Xn

X{n,}

X{n,}?  

X{n,}+

匹配X,至少n

X{n,m}

X{n,m}?

X{n,m}+  

匹配X,至少n,但不多于m

  

    Greedy的表达式会一直匹配下去,直到匹配不下去为止。(如果你发现表达式匹配的结果和预期的不符),非常有可能是因为,你以为表达式会只匹配前面几个字符,而实际上他是greedy的,因此会一直匹配下去。 

    Reluctant 的表达式只匹配最少的字符。也称为lazy, minimal matching, non-greedy, ungreedy。 

    Possessive: 目前只有Java支持(其他语言都不支持)。用正则表达式匹配字符串的时候会产生非常多中间状态(一般的匹配引擎会保存这种中间状态),这样匹配失败的时候就能原路返回。占有型的表达式不保存这种中间状态,因此也就不会回头重来了。他能防止正则表达式的失控,同时也能提高运行的效率。 

 

    :要匹配美国的社会安全号码这个号码的格式是999-99-9999999999999(-可以不出现),正则表达式为:[0-9]{3}\-?[0-9]{2}\-?[0-9]{4}

边界匹配符

 

字符

说明

^

行的开头

$

行的结尾

\b

单词边界

\B

 非单词边界

\A

输入的开头

\z

输入的结尾

\Z

除最后行终止符\n之外的输入结尾

\G

 上个匹配的结尾

  说明:“^”如果用在[]括号内,表示“否”,即该字符除外。但用在[]括号外如“^X”则表示以行X开头。
   例如:

  \B 匹配非单词边界,"er\B" 能匹配 "verb" 中的 "er",但不能匹配 "never" 中的 "er"

  "\bev" 能匹配 "every" 中的 "ev",但不能匹配 "never" 中的 "ev"。 

集合操作

 

字符

说明

XY                                  

X的匹配后面跟着Y的匹配

X|Y

匹配XY

   如:java|hello 将匹配包含javahello的字符串。

   如:tool:(java|ruby|c),可以匹配tool:java,tool:ruby,tool:c,注意不能使用[],因为[]里面只能匹配单个字符。

  如:(b│cd)ef 匹配包含 "bef" 或者 "cdef"的字符串.

  如:"(a│b)*c": 匹配包含0个或多个ab,后面跟一个c的字符串。

 

lxm整理,只为知识共享之用,所有内容均来自网络,内容归所有者。

2009.04.16

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值