1、最基本的matches()方法
package com.wy.regular;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularTest {
public static void main(String[] args) {
/**
* marcher的 find()方法、lookingAt()方法和reset()方法
*/
Pattern pattern = Pattern.compile("\\d{3,5}");
String str = "123-45678-963-00";
Matcher matcher = pattern.matcher(str);
// matches()方法匹配的是整个字符串
pri(matcher.matches());//false
}
public static void pri(Object object){
System.out.println(object);
}
}
2、find()方法
package com.wy.regular;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularTest {
public static void main(String[] args) {
/**
* marcher的 find()方法、lookingAt()方法和reset()方法
*/
Pattern pattern = Pattern.compile("\\d{3,5}");
String str = "123-45678-963-00";
Matcher matcher = pattern.matcher(str);
// find()方法是找子串
pri(matcher.find());// true 找到的是123,然后整个正则表达式引擎会把123去掉。
pri(matcher.find());// true
pri(matcher.find());// true
pri(matcher.find());// false
}
public static void pri(Object object){
System.out.println(object);
}
}
3、matches()方法和find()方法
package com.wy.regular;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularTest {
public static void main(String[] args) {
/**
* marcher的 find()方法、lookingAt()方法和reset()方法
*/
Pattern pattern = Pattern.compile("\\d{3,5}");
String str = "123-45678-963-00";
Matcher matcher = pattern.matcher(str);
pri(matcher.matches());//false,分析到-这个字符,引擎把123-去掉了
// find()方法是找子串
pri(matcher.find());// true 找到的是45678,然后整个正则表达式引擎会把45678-去掉。
pri(matcher.find());// true 找到的是963,去掉的是963-
pri(matcher.find());// false
pri(matcher.find());// false
}
public static void pri(Object object){
System.out.println(object);
}
}
4、添加reset()方法
package com.wy.regular;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularTest {
public static void main(String[] args) {
/**
* marcher的 find()方法、lookingAt()方法和reset()方法
*/
Pattern pattern = Pattern.compile("\\d{3,5}");
String str = "123-45678-963-00";
Matcher matcher = pattern.matcher(str);
pri(matcher.matches());//false,分析到-这个字符,引擎把123-去掉了
// find()方法是找子串
matcher.reset();// 字符串恢复到原来的状态
pri(matcher.find());// true 找到的是123,然后整个正则表达式引擎会把123-去掉。
pri(matcher.find());// true 找到的是45678,去掉的是45678-
pri(matcher.find());// true 找到的是963
pri(matcher.find());// false
}
public static void pri(Object object){
System.out.println(object);
}
}
5、lookingAt()方法
package com.wy.regular;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularTest {
public static void main(String[] args) {
/**
* marcher的 find()方法、lookingAt()方法和reset()方法
*/
Pattern pattern = Pattern.compile("\\d{3,5}");
String str = "123-45678-963-00";
Matcher matcher = pattern.matcher(str);
// lookingAt()从开始的位置查找分析
pri(matcher.lookingAt());// true 123
pri(matcher.lookingAt());// true 123
pri(matcher.lookingAt());// true 123
pri(matcher.lookingAt());// true 123
}
public static void pri(Object object){
System.out.println(object);
}
}
6、起始位置和结束位置(start()和end())
package com.wy.regular;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularTest {
public static void main(String[] args) {
/**
* marcher的 find()方法、lookingAt()方法和reset()方法
*/
Pattern pattern = Pattern.compile("\\d{3,5}");
String str = "123-45678-963-00";
Matcher matcher = pattern.matcher(str);
pri(matcher.matches());// false
matcher.reset();
pri(matcher.find());// true 123
pri(matcher.start() + "-" + matcher.end());// 0-3 123-
pri(matcher.find());// true 45678
pri(matcher.start() + "-" + matcher.end());// 4-9 45678-
pri(matcher.find());// true 963
pri(matcher.start() + "-" + matcher.end());// 10-13 963-
pri(matcher.find());// false
//pri(matcher.start() + "-" + matcher.end());// 会报错,起始和结束必须能找到
}
public static void pri(Object object){
System.out.println(object);
}
}