正则表达式所支持的合法字符

x

字符x(x可代表任何合法的字符)

\0mnn

8进制数0mnn所表示的字符

\xhh

16进制值0xhh所表示的字符

\uhhhh

16进制值0xhhhh所表示的UNICODE字符

\t

制表符('\u0009')

\n

新行(换行)符('\u000A')

\r

回车符('\u000D')

\f

换页符('\u000C')

\a

报警(bell)符('\u0007')

\e

Escape符('\u001B')

\cx

对应的的控制符。例如,\cM :匹配Ctrl-M。x值必须为A-Z或a-z之一。

 在正则表达式中,特殊的字符具有特殊的含义

想要在表达式中表示字符本身,需要用反斜杠“\\”,进行转义

$

匹配一行的结尾。要匹配 $ 字符本身,请使用 \$

^

匹配一行的开头。要匹配 ^ 字符本身,请使用 \^

( )

标记子表达式的开始和结束位置。要匹配这些字符,请使用 \( 和 \)

[ ]

用于确定中括号表达式的开始和结束位置.

{ }

用于标记前面子表达式的出现频度,要匹配这些字符,请使用 \{ 和 \}

*

指定前面子表达式可以出现零次或多次。要匹配 * 字符,请使用 \*

+

指定前面子表达式可以出现一次或多次。要匹配 + 字符,请使用 \+

?

指定前面子表达式可以出现零次或一次。要匹配 ? 字符,请使用 \?

.

匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \.

\

用于转义下一个字符,或指定八进制、十六进制字符。如果需匹配 \,请用\\

|

指定两项之间任选一项,如果要匹配 | ,请使用 \|

预定义字符

说明

.

可以匹配任何字符

\d

匹配0~9的所有数字

\D

匹配非数字

\s

匹配所有空白字符,包括空格、制表符、回车符、换页符、换行符等

\S

匹配所有非空白字符

\w

匹配所有单词字符,包括0~9所有数字,26个英文字母和下划线(_)

\W

匹配所有非单词字符

上面的7个预定义字符其实很容易记忆:

d是 digit的意思,

代表数字 s是space的意思,

代表空白 w是 word 的意思,

代表单词 d、s、w的大写形式恰好匹配与之相反的字符 

在一些特殊情况下,例如,若只想匹配a~f的字母,或者匹配除了ab之外的所有小写字母,或者匹配中文字符,预定义字符就无能为力了,此时就需要使用方括号表达式 所有的中文字符unicode值是连续的,匹配所有的中文字符: [\\u4e00-\\u9fa5] 一个方括号表达式,表示的是一个字符

方括号表达式

说明

表示枚举

例如[abc],表示a、b、c其中任意一个字符;[gz]表示g、z其中的任意一个字符

表示范围:-

例如[a-f],表示a~f范围内的任意字符;[\\u0041-\\u0056]表示十六进制字符\u0041到\u0056范围的字符。范围可以和枚举结合使用,如[a-cx-z],表示a~c、x~z范围内的任意字符

表示求否:^

例如:[^abc],表示非a、b、c的任意字符;[^a-f]表示不是a~f范围内的任意字符

表示“与”运算:&&

例如[a-z&&[def]],求a-z和[def]的交集,表示d、e或f;

[a-z&&[^bc]],a-z范围内的所有字符,除了b和c之外,即[ad-z];

[a-z&&[^m-p]],a-z范围内的所有字符,除了m~p范围之外,即[a-lq-z]

表示“并”运算

并运算与前面的枚举类似。

如[a-d[m-p]],表示[a-dm-p]

数量标识符 

贪婪模式

勉强模式

占有模式

说明

X?

X??

X? +

X表达式出现零次或一次 -> x{0,1}

X*

X*?

X*+

X表达式出现零次或多次

X+

X+?

X++

X表达式出现一次或多次

X{n}

X{n} ?

X{n} +

X表达式出现出现n次

X{n,}

X{n,} ?

X{n,} +

X表达式最少出现n次

x{n,m}

x{n,m} ?

x{n,m} +

X表达式最少出现n次,最多出现m次

 当从“”hello , java!“字符串中查找匹配”“\w*”子串时,因为“”\w*“使用了贪婪模式,数量表示符(*)会一直匹配下去,所以该字符串前面的所有单词字符都被它匹配到,直到遇到非单词,所以替换后的效果是“*, java!“

如果使用勉强模式,数量表示符(*)会尽量匹配最少字符,即匹配0个字符,所以替换后的结果是“*hello , java!”

边界匹配符

说明

^

行的开头

$

行的结尾

\b

单词的边界,匹配非单词

\B

非单词的边界,匹配单词

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值