Java正则表达式

pk10开户推出辅导班啦,包括「C语言辅导班、C++辅导班、算法/数据结构辅导班」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践 + 永久学习。QQ在线,随时响应!

正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(如字符 a~z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。

正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。本文简单了解一下如何使用正则表达式来操作字符串。

元字符

正则表达式中含有一些具有特殊意义的字符,这些特殊字符称为正则表达式的元字符。例如“d”表示 0~9 的任何一个数字,“d”就是元字符。正则表达式中有多种元字符,常用的元字符如表 1 所示。

表1 正则表达式常用的元字符
元字符 正则表达式的写法 说明
. "." 代表任意一个字符
d "d" 代表 0~9 的任何一个数字
D "D" 代表任何一个非数字字符
s "s" 代表空白字符,如"t’’和’’n”
S "S" 代表非空白字符
W "W" 代表不可用于标识符的字符
p {Lower} p {Lower} 代表小写字母 {a~z}
p {Upper} p {Upper} 代表大写字母 {A~Z}
p {ASCII} p {ASCII} ASCII 字符
p {Alpha} p {Alpha} 字母字符
p {Digit} p {Digit} 十进制数字,即 [0~9]
p {Alnum} p {Alnum} 数字或字母字符
p {Punct} p {Punct} 标点符号:!"#$%&'()*+,-./:;<=>?@[]^_`{|}~ 
p {Graph} p {Graph} 可见字符:[p{Alnum}p{Punct}]
p {Print} p {Print} 可打印字符:[p{Graph}x20]
p {Blank} p {Blank} 空格或制表符:[t]
p {Cntrl} p {Cntrl} 控制字符:[x00-x1Fx7F]

在正则表达式中,可以使用方括号括起来若干个字符来表示一个元字符。这个元字符可以代表方括号中的任何一个字符,例如字符串“reg="a4"” “reg="b4"”和“reg="c4"”都是与“reg="[abc]4"”匹配的字符串。

注意:在正则表达式中,"."代表任何一个字符,因此如果想在正则表达式中使用普通意义的点字符,那么必须使用转义字符。

限定符

正则表达式中允许使用限定修饰符来限定元字符出现的次数,例如,“B*”表示 B 字母可以在字符串中出现零次或多次。正则表达式中可以使用多种限定符,如表 2 所示。
表2 正则表达式常用的限定符
限定符 ? * + {n} {n,} {n,m}
说明 零次或一次 零次或多次 一次或多次 正好出现 n 次 至少出现 n 次 出现 n~m 次