一、正则表达式
正则表达式(regular expression,简写为regex)是一个字符串,用来描述匹配一个字符串集合的模式。
对于字符串处理来说,正则表达式是一个强大的工具。可以使用正则表达式来匹配,替换和拆分字符串。
二、匹配字符串
从string类的matches开始。
"Java is fun".matches("Java.*")
"Java is cool".matches("Java.*")
"Java is powerful".matches("Java.*")
这些语句中的"Java.*"是一个正则表达式。它描述了一个字符串模式,以Java开始,后面跟0个或者多个字符串。这里,子字符串.*匹配0或者多个任意字符。
三、正则表达式语法
正则表达式由字面值字符和特殊符号组成。
在正则表达式中,反斜杠是一个特殊的字符,在字符串中开始转义序列。因此Java中需要使用\\来表示\。单词字符是任何的字母,数字或者下划线字符。
四、常见部分正则表达式
五、正则表达式的一些示例
六、替换和拆分字符串
如果字符串匹配正则表达式,String类的matches方法返回true。String类包含replaceAll、replaceFirst和split方法,用于替换和拆分字符串。
replaceAll方法替换所有匹配的子字符串,replaceFirst方法替换第一个匹配的子字符串。
例如:System.out.println("Java Java Java".replaceAll("v\\w","wi"));
显示:Jawi Jawi Jawi
例如:System.out.println("Java Java Java".replaceFirst("v\\w","wi"));
显示:Jawi Java Java
split(regex)方法使用匹配的分隔符将一个字符串拆分为子字符串。
例如:String[] tokens="JavalHTML2Perl".split("\\d");将字符串“JavaHTML2Perl"拆分为Java HTML以及Perl并保存在tokens[0],tokens[1],tokens[2]中。
split(regex,limit)方法中,limit参数确定模式匹配多少次。如果limit<=0,则与split(regex)相同。如果limit>0,模式匹配limit-1次。
例如: