• 正则表达式(十一)——find和lookingAt


    1、最基本的matches()方法

     1 package com.wy.regular;
     2 
     3 import java.util.regex.Matcher;
     4 import java.util.regex.Pattern;
     5 
     6 public class RegularTest {
     7 
     8     public static void main(String[] args) {
     9         /**
    10          * marcher的 find()方法、lookingAt()方法和reset()方法
    11          */
    12         Pattern pattern = Pattern.compile("\d{3,5}");
    13         String str = "123-45678-963-00";
    14         Matcher matcher = pattern.matcher(str);
    15         // matches()方法匹配的是整个字符串
    16         pri(matcher.matches());//false
    17     }
    18 
    19     public static void pri(Object object){
    20         System.out.println(object);
    21     }
    22 }

    2、find()方法

     1 package com.wy.regular;
     2 
     3 import java.util.regex.Matcher;
     4 import java.util.regex.Pattern;
     5 
     6 public class RegularTest {
     7 
     8     public static void main(String[] args) {
     9         /**
    10          * marcher的 find()方法、lookingAt()方法和reset()方法
    11          */
    12         Pattern pattern = Pattern.compile("\d{3,5}");
    13         String str = "123-45678-963-00";
    14         Matcher matcher = pattern.matcher(str);
    15         // find()方法是找子串
    16         pri(matcher.find());// true 找到的是123,然后整个正则表达式引擎会把123去掉。
    17         pri(matcher.find());// true
    18         pri(matcher.find());// true
    19         pri(matcher.find());// false
    20     }
    21 
    22     public static void pri(Object object){
    23         System.out.println(object);
    24     }
    25 }

    3、matches()方法和find()方法

     1 package com.wy.regular;
     2 
     3 import java.util.regex.Matcher;
     4 import java.util.regex.Pattern;
     5 
     6 public class RegularTest {
     7 
     8     public static void main(String[] args) {
     9         /**
    10          * marcher的 find()方法、lookingAt()方法和reset()方法
    11          */
    12         Pattern pattern = Pattern.compile("\d{3,5}");
    13         String str = "123-45678-963-00";
    14         Matcher matcher = pattern.matcher(str);
    15         pri(matcher.matches());//false,分析到-这个字符,引擎把123-去掉了
    16         // find()方法是找子串
    17         pri(matcher.find());// true 找到的是45678,然后整个正则表达式引擎会把45678-去掉。
    18         pri(matcher.find());// true 找到的是963,去掉的是963- 
    19         pri(matcher.find());// false
    20         pri(matcher.find());// false
    21     }
    22 
    23     public static void pri(Object object){
    24         System.out.println(object);
    25     }
    26 }

    4、添加reset()方法

     1 package com.wy.regular;
     2 
     3 import java.util.regex.Matcher;
     4 import java.util.regex.Pattern;
     5 
     6 public class RegularTest {
     7 
     8     public static void main(String[] args) {
     9         /**
    10          * marcher的 find()方法、lookingAt()方法和reset()方法
    11          */
    12         Pattern pattern = Pattern.compile("\d{3,5}");
    13         String str = "123-45678-963-00";
    14         Matcher matcher = pattern.matcher(str);
    15         pri(matcher.matches());//false,分析到-这个字符,引擎把123-去掉了
    16         // find()方法是找子串
    17         matcher.reset();// 字符串恢复到原来的状态
    18         pri(matcher.find());// true 找到的是123,然后整个正则表达式引擎会把123-去掉。
    19         pri(matcher.find());// true 找到的是45678,去掉的是45678-
    20         pri(matcher.find());// true 找到的是963 
    21         pri(matcher.find());// false
    22     }
    23 
    24     public static void pri(Object object){
    25         System.out.println(object);
    26     }
    27 }

    5、lookingAt()方法

     1 package com.wy.regular;
     2 
     3 import java.util.regex.Matcher;
     4 import java.util.regex.Pattern;
     5 
     6 public class RegularTest {
     7 
     8     public static void main(String[] args) {
     9         /**
    10          * marcher的 find()方法、lookingAt()方法和reset()方法
    11          */
    12         Pattern pattern = Pattern.compile("\d{3,5}");
    13         String str = "123-45678-963-00";
    14         Matcher matcher = pattern.matcher(str);
    15         // lookingAt()从开始的位置查找分析
    16         pri(matcher.lookingAt());// true 123
    17         pri(matcher.lookingAt());// true 123
    18         pri(matcher.lookingAt());// true 123
    19         pri(matcher.lookingAt());// true 123
    20     }
    21 
    22     public static void pri(Object object){
    23         System.out.println(object);
    24     }
    25 }

     6、起始位置和结束位置(start()和end())

     1 package com.wy.regular;
     2 
     3 import java.util.regex.Matcher;
     4 import java.util.regex.Pattern;
     5 
     6 public class RegularTest {
     7 
     8     public static void main(String[] args) {
     9         /**
    10          * marcher的 find()方法、lookingAt()方法和reset()方法
    11          */
    12         Pattern pattern = Pattern.compile("\d{3,5}");
    13         String str = "123-45678-963-00";
    14         Matcher matcher = pattern.matcher(str);
    15         pri(matcher.matches());// false
    16         matcher.reset();
    17         pri(matcher.find());// true 123
    18         pri(matcher.start() + "-" + matcher.end());// 0-3 123- 
    19         
    20         pri(matcher.find());// true 45678
    21         pri(matcher.start() + "-" + matcher.end());// 4-9 45678-
    22         
    23         pri(matcher.find());// true 963
    24         pri(matcher.start() + "-" + matcher.end());// 10-13 963-
    25         
    26         pri(matcher.find());// false 
    27         //pri(matcher.start() + "-" + matcher.end());// 会报错,起始和结束必须能找到
    28     }
    29 
    30     public static void pri(Object object){
    31         System.out.println(object);
    32     }
    33 }
  • 相关阅读:
    JS中的函数声明存在的“先使用,后定义”
    JS原型与原型链终极详解
    Angular--页面间切换及传值的四种方法
    Angularjs Controller 间通信机制
    angularjs 中使用 service 在controller 之间 share 对象和数据
    CSS中!important的使用
    angularjs checkbox 框的操作
    纯CSS气泡框实现方法探究
    AngularJS 实现页面滚动到底自动加载数据的功能
    AngularJS的Filter用法详解
  • 原文地址:https://www.cnblogs.com/stujike/p/9676022.html
Copyright © 2020-2023  润新知