一、正则表达式的基本概念
正则表达式(Regular Expressions)也称规则表达式,这个概念最初是由Unix中的工具软件(如sed和grep)普及的。正则表达式在代码中常简写为REs,regex或regexp(regex patterns)。正则表达式的本质是一个字符串,用来描述匹配一个字符串集合的模式。通过正则表达式,可以匹配、替换和拆分字符串。
二、正则表达式的语法
正则表达式由字面值字符和特殊符号组成,表H-1为正则表达式常用的语法:
注意:
1. Java中需要使用\\来表示\
2. \s等同[\t\n\r\f];\S等同[^\t\n\r\f]
3. 不要在重复量词符中使用空白
示例:
1."111-22-3333".matches("[\\d]{3}·[\\d]{2}-[\\d]{4}") returns true.
2."11-22-3333".matches("[\\d]{3)}[\\d]{2}-[\\d]{4}") returns false.
1."123".matches("[\\d]*[02468]") returns false.
2."122".matches("[\\d]*[02468]") returns true.
正则表达式中替换和拆分字符串
replaceAll方法替换所有匹配的子字符串,replaceFirst方法替换第一个匹配的子字符串。
示例:
replaceAll:
System.out.print1n("Java Java Java".replaceA11("v\\w"."wi")) ;
显示
Jawi Jawi Jawi
replaceFirst:
System.out.print1n("Java Java Java".replaceFirst("v\\w"."wi"));
显示
Jawi Java Java
两个重载split方法:split(regex)方法使用匹配的分隔符将一个字符串拆分为子字符串。
示例:
将字符串"JavaHTML2Per1"拆分为Java。HTML以及Per1并且保存在tokens [0],tokens[1]
以及tokens[2] 中。
在split(regex,1imit)方法中,limit参数确定模式匹配多少次。如果limit <= 0,,split(regex,limit)等同于sp1it(regex)。如果limit > 0,模式最多匹配limit -1次。
示例: