1、添加辅助性方法打印方法。
package com.wy.regular;
public class RegularTest {
public static void main(String[] args) {
// 简单认识正则表达式的概念
// 一个点代表一个字符
pri("abc".matches("..."));
}
// 辅助性的方法:打印对象
public static void pri(Object object){
/*
* 实际上调用的是object的toString()方法
* public String toString() {
* return getClass().getName() + "@" + Integer.toHexString(hashCode());
* }
*/
System.out.println(object);
}
}
2、把字符串所有的数字替换成 -
package com.wy.regular;
public class RegularTest {
public static void main(String[] args) {
// 简单认识正则表达式的概念
/*
* replaceAll是替代所有的,两个参数String regex 和String replacement
* 要求:把所有的数字都换成-
* \d代表的是一位数字,在Java中一个反斜杠和后面的字符合在一起代表的是转义字符
* 正则表达式要求这个正则式本身就是\d,在Java中就在加一个\就是两个反斜杠
*/
pri("a8729a".replaceAll("\\d", "-"));// 结果是a----a
}
public static void pri(Object object){
System.out.println(object);
}
}
3、Pattern和Matcher的引入和运用
package com.wy.regular;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularTest {
public static void main(String[] args) {
/*
* compile()方法把正则表达式编译下,匹配速度会快很多
* [a-z]代表的是匹配的是一位字母。
* [a-z]{3}表示的是三位的,每一个都是a-z中的字符,注意是花括号{}不是()
*/
Pattern pattern = Pattern.compile("[a-z]{3}");
/*
* 匹配输入进来的字符串
* CharSequence String类实现了CharSequence接口
* 内部的原理是创建有限的自动机
*/
Matcher matcher = pattern.matcher("cgh");
// 查看匹配结果,调用Matcher的matches()方法
pri(matcher.matches());//输出为true
// 上面的三行合成
pri("cgh".matches("[a-z]{3}"));//输出为true
pri("cgha".matches("[a-z]{3}"));//输出为false
}
public static void pri(Object object){
System.out.println(object);
}
}