正則表達式(十一)——find和lookingAt
阿新 • • 發佈:2018-09-19
位置 字符 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 packagecom.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