正则表达式

Character classes
[abc]a, b, or c (simple class)
[^abc]Any character except a, b, or c (negation)
[a-zA-Z]a through z or A through Z, inclusive (range)
[a-d[m-p]]a through d, or m through p: [a-dm-p] (union)
[a-z&&[def]]d, e, or f (intersection)
[a-z&&[^bc]]a through z, except for b and c: [ad-z] (subtraction)
[a-z&&[^m-p]]a through z, and not m through p: [a-lq-z](subtraction)

 

Predefined character classes
.Any character (may or may not match line terminators)
/dA digit: [0-9]
/DA non-digit: [^0-9]
/sA whitespace character: [ /t/n/x0B/f/r]
/SA non-whitespace character: [^/s]
/wA word character: [a-zA-Z_0-9]
/WA non-word character: [^/w]

 

POSIX character classes (US-ASCII only)
/p{Lower}A lower-case alphabetic character: [a-z]
/p{Upper}An upper-case alphabetic character:[A-Z]
/p{ASCII}All ASCII:[/x00-/x7F]
/p{Alpha}An alphabetic character:[/p{Lower}/p{Upper}]
/p{Digit}A decimal digit: [0-9]
/p{Alnum}An alphanumeric character:[/p{Alpha}/p{Digit}]
/p{Punct}Punctuation: One of !"#$%&'()*+,-./:;<=>?@[/]^_`{|}~
/p{Graph}A visible character: [/p{Alnum}/p{Punct}]
/p{Print}A printable character: [/p{Graph}/x20]
/p{Blank}A space or a tab: [ /t]
/p{Cntrl}A control character: [/x00-/x1F/x7F]
/p{XDigit}A hexadecimal digit: [0-9a-fA-F]
/p{Space}A whitespace character: [ /t/n/x0B/f/r]

 

Greedy quantifiers
X?X, once or not at all
X*X, zero or more times
X+X, one or more times
X{n}X, exactly n times
X{n,}X, at least n times
X{n,m}X, at least n but not more than m times

 

Reluctant quantifiers
X??X, once or not at all
X*?X, zero or more times
X+?X, one or more times
X{n}?X, exactly n times
X{n,}?X, at least n times
X{n,m}?X, at least n but not more than m times

 

Possessive quantifiers
X?+X, once or not at all
X*+X, zero or more times
X++X, one or more times
X{n}+X, exactly n times
X{n,}+X, at least n times
X{n,m}+X, at least n but not more than m times

 

Logical operators
XYX followed by Y
X|YEither X or Y
(X)X, as a capturing group

以上摘自java文档,详见java.util.regex。

注意:网上很多讲正则表达式的文章是基于Jakarta-ORO的,我在这里介绍的是java自带的,他们在匹配模式上有一定差别,使用时注意不要混淆。

使用示例:

电话号码:1234-12345678       [0-9]{4}-[0-9]{8} 或 //d{4}-//d{8}    电话号码格式固定 区号4位,号码8位,中间-连接

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值