zoukankan      html  css  js  c++  java
  • 正则表达式(十一)——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 }
  • 相关阅读:
    HTML特殊字符编码对照表
    前端研究CSS之文字与特殊符号元素结合的浏览器兼容性总结
    前端研究CSS之内联元素块级化/区域大小/文字和图标的位置
    鼠标滚动事件onscroll在firefox/chrome/Ie中执行次数的问题处理
    Js把对象数组列表转换成数组
    Windows 10简体中文最新预览版Build 9926
    常州陪购师一小时收费300元 1年穿坏20双高跟鞋
    [2015.01.23]办公工具类....不定时添加
    [2015.01.21]数据恢复类....不定时添加
    2015年高速免费通行时间确定 共计免费20天
  • 原文地址:https://www.cnblogs.com/stujike/p/9676022.html
Copyright © 2011-2022 走看看