1. 程式人生 > >正則表達式(十一)——find和lookingAt

正則表達式(十一)——find和lookingAt

位置 字符 find() spa ring 3-0 reset span reg

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 }

正則表達式(十一)——find和lookingAt