当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>Java进阶

JAVA语言编程中如何使用表达式

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

相关内容
赞助商链接