Java正则表达式

本文主要描述Java正则表达式(Regular Expression),其作用是预先定义一个规则,然后,使用该规则匹配输入的字符串是否符合定义的规则,也可以从匹配的输出中提取字符串,正则表达式的常用使用场景包括字符串校验、提取字符串、规则引擎、语法规则。

正则定义

字符

 

x     字符x

\\    反斜杆

\xhh  十六进制值0xhh

\t    tab键('\u0009')

\n    换行符('\u000A')

\r    回车键('\u000D')

列举

[abc]       字符a、b、c

[^abc]    不包括a、b、c的字符

[a-zA-Z]  范围a到z、范围A到Z的字符

[a-d[m-p]]     范围a到d、范围m到p的并集

[a-z&&[def]] 范围a到z与字符d、e、f的交集

[a-z&&[^bc]] 范围a到z不包括字符b、c

[a-z&&[^m-p]]  范围a到z不包括字符范围m到p

通用

.      点号表示任意字符

\d    数字0到9,[0-9]

\D   非数字0到9,[^0-9]

\s    空格符

\S    非空格符,[^\s]

\w   字, [a-zA-Z_0-9]

\W  非字, [^\w]

界限

^     行开始位置

$     行结束位置

次数

X?   X,  出现0次、一次

X*    X,  出现0次、多次

X+   X,  出现一次、多次

X{n} X,  出现n次

X{n,} X,出现大于或等于n次

X{n,m} X, 出现大于或等于n次并且小于或等于m次

逻辑

XY   XY并排

X|Y  X或者Y

(X)   X,  分组

使用示例

 

(([[a-zA-Z]+-?[a-zA-Z0-9]+]+)@([[a-zA-Z0-9]+\\.[a-zA-Z0-9]+]+))

定义一个分组的正则表达式,其形式是((a)@(b)),使用正则匹配可以提取其中分组a、b对应的字符串

你可能感兴趣的:(Java技术与架构,正则表达式)