首页 / 操作系统 / Linux / JAVA语言编程中如何使用表达式
JAVA 正则表达式涉及的三个类:String,Pattern,MatcherPattern是要匹配的模式,Matcher是匹配的结果.例如:Pattern p = Pattern.complie("[a-z]{3}");Matcher m = p.mather("abc");要想在正则表达式中匹配一个反斜线用四个反斜线表示: "\".matches("\\");匹配空白行 "
".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 HateJAVAJava正则表达式分组: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: afdsafGroup0: 34ijii Group1: 34 Group2: ijiiGroup0: 422342k Group1: 422342 Group2: kGroup0: 423423fsdfaf Group1: 423423 Group2: fsdfaf