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()

  • 相关阅读:
    CMD命令
    python函数
    steam更新出错 应用运行中
    更改steam的游戏库
    python 3.6 setup
    vim 安装
    绝地求生大逃杀,改配置
    回写盘写速度被限速为10M左右
    JAVA和C# 3DES加密解密
    DES/3DES/AES区别
  • 原文地址:https://www.cnblogs.com/xiaochenztx/p/8520499.html
Copyright © 2011-2022 走看看