正则表达式
一.概念
正则表达式(regular expression,简写regex)是一个字符串用来匹配字符串集合的模式。可以用正则表达式来匹配替换和拆分字符。
二.匹配字符串
1.可以用matches来匹配字符串:
“java”.matches(“java”);
这与equals方法(“java”.equals(“java”);)很类似但是用法更全面,功能更强大。例如:可以使用(.*)代表任意长度的字符串。
2.常用的正则表达式
(注:还有p{,n}正好出现至少n次模式p)
可利用以下语句对其进行验证{
/*该语句仅对[^a-b] 类型进行了验证*/
String s = new String("javae");
String example="java[^a-c]";
System.out.println(s.matches(example));
}
三.替换和拆分字符
String类也包含replaceall、replacefirst和split方法用于替换和拆分字符串。
1.替换
a.replaceAll:
如:System.out.println(“java java java”.raplaceall(“”v\\w”,”wi”));
会显示jawi jawi jawi
b.replaceFirst:
若将改为replacefirst则会变为jawi java java
2.拆分字符
拆分字符有两个重载:
a.split(regex)
将一个字符串拆分成子字符串。
例:string[] tokens = “JavalHTML2perl”.split(“\\d”);
将字符串“JavalHTML2perl”拆分为Java,HTML以及Perl并且保存再tokens[0],tokens[1],tokens[3]中。
b.split(regex,limit)
由limit参数确定匹配几次(当limit=0时,相当于split(regex)
注:{默认情况下,所有量词都是贪婪的,即会尽可能地多次匹配,可以通过在后面加“?”来将其变为惰性的,使其匹配次数尽可能少。
例:
System.out.println(“jaaaavaa”.replaceFirst(“a+”,”R”));
显示:JRvaa
System.out.println(“jaaaavaa”.replaceFirst(“a+?”,”R”));
显示:JRaaavaa
}