检查字符串的规则,比如是不是以字母开头,长度是否超过八位,是否包括大写字母等等……

可以采用传统的Java代码(或JavaScript代码)来进行挨个判断处理,但会很低效。为了解决这类问题,正则表达式是一个很好的工具,Java提供了对正则表达式这个工具的支持。

正则表达式是一种规则,不隶属于任何一种语言。

java正则匹配所有结果 java正则匹配字符_java正则匹配所有结果

正则表达式案例:

java正则匹配所有结果 java正则匹配字符_正则表达式_02

目录

一:单个字符的匹配

1.正则表达式的匹配条件是单个字符;【单次匹配的结果也是单个字符,自然一个包含多个字符的字符串可以匹配成功多次】

2.正则表达式的匹配条件是两个字符都可以;【单次匹配的结果也是单个字符,自然一个包含多个字符的字符串可以匹配成功多次】

3.正则表达式的匹配条件是一个字符集合;【单次匹配的结果也是单个字符,自然一个包含多个字符的字符串可以匹配成功多次】

4.正则表达式的匹配条件是一个字符集合,只是这个集合可以写成一个如0-9的范围;【单次匹配的结果也是单个字符,自然一个包含多个字符的字符串可以匹配成功多次】

5.正则表达式的匹配条件是不希望出现某些字符;【单次匹配的结果也是单个字符,自然一个包含多个字符的字符串可以匹配成功多次】

二:几个案例:     


 

一:单个字符的匹配

【单个字符的匹配】:(1)正则表达式规定了匹配条件;(2)会根据正则表达式定义的匹配条件,逐个字符的检验原字符串的字符,符合匹配条件的字符就匹配出来,不符合匹配条件的字符就匹配不出来;(3)每次匹配的结果都是单个字符;如下图所示:假如原字符串由8个字符组成,根据正则表达式匹配成功了3次,得到了3个匹配结果【单个字符】;

java正则匹配所有结果 java正则匹配字符_java正则匹配所有结果_03

java正则匹配所有结果 java正则匹配字符_Java_04

开源中国提供的正则表达式测试工具,可以用来测试正则表达式

1.正则表达式的匹配条件是单个字符;【单次匹配的结果也是单个字符,自然一个包含多个字符的字符串可以匹配成功多次】

java正则匹配所有结果 java正则匹配字符_Java_05

2.正则表达式的匹配条件是两个字符都可以;【单次匹配的结果也是单个字符,自然一个包含多个字符的字符串可以匹配成功多次】

如果输入的是x|y,其意思是分别匹配两个单个字符。1的延伸;

这个就是分别匹配A和j

java正则匹配所有结果 java正则匹配字符_字符串_06

3.正则表达式的匹配条件是一个字符集合;【单次匹配的结果也是单个字符,自然一个包含多个字符的字符串可以匹配成功多次】

字符集合中的每个元素的单独匹配。这也是1的延伸;

这个就是分别匹配中括号中的字符:

java正则匹配所有结果 java正则匹配字符_java正则匹配所有结果_07

4.正则表达式的匹配条件是一个字符集合,只是这个集合可以写成一个如0-9的范围;【单次匹配的结果也是单个字符,自然一个包含多个字符的字符串可以匹配成功多次】

这个多用于0-9,a-z,A-Z这些;是3的一种特例形式;

java正则匹配所有结果 java正则匹配字符_java正则匹配所有结果_08

对于0123456789,abcd……yz,AB……YZ这些字符,可以采用下面的简写形式:

java正则匹配所有结果 java正则匹配字符_字符串_09

java正则匹配所有结果 java正则匹配字符_java正则匹配所有结果_10

5.正则表达式的匹配条件是不希望出现某些字符;【单次匹配的结果也是单个字符,自然一个包含多个字符的字符串可以匹配成功多次】

5是基于3、4的写法的,只是[^]在中括号中多写一个^即可

下面的这个例子是,匹配出字符串中所有不是u字符的字符,

java正则匹配所有结果 java正则匹配字符_java正则匹配所有结果_11

java正则匹配所有结果 java正则匹配字符_正则表达式_12


二:几个案例:     

注意(1)和(2)中的h[ae]llo这种形式;这种用法在实际中可能会解决很多需求!

java正则匹配所有结果 java正则匹配字符_正则表达式_13

java正则匹配所有结果 java正则匹配字符_正则表达式_14

java正则匹配所有结果 java正则匹配字符_字符串_15

注:还是上面所说的要注意(1)和(2)中的h[ae]llo这种形式;这种用法在实际中可能会解决很多需求!这种用法说白了就是,“字符串匹配”,即正则表达式的匹配条件是一个字符串,只是这个字符串中的有些字符是没有定死的;

java正则匹配所有结果 java正则匹配字符_java正则匹配所有结果_16