zoukankan      html  css  js  c++  java
  • Java正则表达式的使用

    Matcher类的一些方法

    find()方法:依次查找与Pattern匹配的子串,一旦找到子串,下次再调用时接着向下查找

    group():返回上一次与Pattern匹配的字符串(一个字符串,可能会出现多个子串与Pattern匹配成功)

    end():返回上一次匹配上的字符串结束的位置+1

    start():返回上一次匹配上的字符串开始的位置

    matcher():返回目标字符串与pattern是否匹配

    reset():将现有的Matcher应用于一个新的字符串序列

    import java.util.regex.*;
    
    public class PatternTest1{
        public static void main(String[] args)
        {
            //System.out.println("dfsddfgdfdsfsd撒打发斯蒂芬");
            String s1 = "java is very easy";
            Pattern p = Pattern.compile("\w+");
            Matcher m = p.matcher(s1);
            while(m.find())
            {
                System.out.println(m.group()+"子串起始的位置:" + m.start()+"结束的位置:"+m.end());
            }
        }
    }

    运行结果:

    java子串起始的位置:0结束的位置:4
    is子串起始的位置:5结束的位置:7
    very子串起始的位置:8结束的位置:12
    easy子串起始的位置:13结束的位置:17
    请按任意键继续. . .

    源码--模拟判断几个邮件地址是否合法

     1 import java.util.regex.*;
     2 
     3 public class PtternTest2{
     4     public static void main(String[] args)
     5     {
     6         String[] mails = {
     7             "kongyeehu@163.com",
     8             "kongyeehua@gmail.com",
     9             "ligang@crazyit.org",
    10             "wawa.abc.**"
    11         };
    12         String mailRegEx = "\w{3,20}@\w+\.(com|org|cn|net|gov)";
    13         Pattern p = Pattern.compile(mailRegEx);
    14         Matcher m = null;
    15         for(String mail:mails)
    16         {
    17             if(m == null)
    18             {
    19                 m = p.matcher(mail);
    20             }
    21             else
    22             {
    23                 m.reset(mail);
    24             }
    25             String result = mail + (m.matches()?"是":"不是") + "有效的邮件地址";
    26             System.out.println(result);
    27         }
    28         
    29     }
    30 }

    Matcher类还提供了:replaceAll(“+++”)把匹配到的字符串都替换掉

               replaceFirst(“  ”)只替换第一个匹配到的

    String 类也有类似的split() replaceAll() replaceFirst()

  • 相关阅读:
    prototype.js超强的javascript类库
    MySQL Server Architecture
    Know more about RBA redo block address
    MySQL无处不在
    利用Oracle Enterprise Manager Cloud Control 12c创建DataGuard Standby
    LAMP Stack
    9i中DG remote archive可能导致Primary Database挂起
    Oracle数据库升级与补丁
    Oracle为何会发生归档日志archivelog大小远小于联机重做日志online redo log size的情况?
    Oracle Ksplice如何工作?How does Ksplice work?
  • 原文地址:https://www.cnblogs.com/xiaochenztx/p/8520499.html
Copyright © 2011-2022 走看看