java认证辅导:JAVA语言编程中如何使用表达式Java认证考试
文章作者 100test 发表时间 2009:07:07 21:12:28
来源 100Test.Com百考试题网
JAVA 正则表达式涉及的三个类:
String,Pattern,Matcher
Pattern是要匹配的模式,Matcher是匹配的结果.
例如:Pattern p = Pattern.complie("[a-z]{3}").
Matcher m = p.mather("abc").
要想在正则表达式中匹配一个反斜线用四个反斜线表示: "\\".matches("\\\\").
匹配空白行 " \n".matches("^[\\s&.&.[^\\n]]*\\n$").
找出匹配结果在整个字符串的开始位置和结束位置
Pattern p = Pattern.complie("\\d{3,5}").
String a = "123-2135-155-00".
Matcher m = p.matcher(s).
m.matches() // 匹配整个字符串,所以这里是false.
m.reset().
while(m.find()) // 找一个和这个模式所匹配的子串
{
System.out.println(m.start() "To" m.end()).
}
将匹配到的java都转换成大写的
Pattern p = Pattern.complie("java", Pattern.CASE_INSENSITIVE).
Matcher m = p.matcher("java Java JaVa IloveJava You HateJaVA").
m.replaceAll("JAVA").
将匹配偶数个转换为大写,奇数个转换为小写
package zx.test.
import java.util.regex.Matcher.
import java.util.regex.Pattern.
public class TestPattern
{
public static void main(String[] args)
{
StringBuffer newString = new StringBuffer().
String isPatternString = "java Java JaVa IloveJava You HateJaVA".
Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE).
Matcher m = p.matcher(isPatternString).
int i = 0.
while(m.find())
{
i .
if (i % 2 == 0)
{
m.appendReplacement(newString, "java").
}
else
{
m.appendReplacement(newString, "JAVA").
}
}
m.appendTail(newString).
System.out.println(newString).
}
}
输出结果:JAVA java JAVA Ilovejava You HateJAVA
Java正则表达式分组:
private static void testGroup()
{
String s = "3412afdsaf-34ijii-422342k23-423423fsdfaf".
Pattern p = Pattern.compile("(\\d{1,10})([a-z]{1,9})"). // 组1:(\\d{1,10}) 组2:([a-z]{1,9})
Matcher m = p.matcher(s).
while(m.find())
{
System.out.println("Group0: " m.group() " Group1: " m.group(1) " Group2: " m.group(2)).
}
}
输出结果:
Group0: 3412afdsaf Group1: 3412 Group2: afdsaf
Group0: 34ijii Group1: 34 Group2: ijii
Group0: 422342k Group1: 422342 Group2: k
Group0: 423423fsdfaf Group1: 423423 Group2: fsdfaf
更多优质资料尽在百考试题论坛 百考试题在线题库