pattern (模式) 与 matcher (匹配) 搭配使用实现对字符序列的检索和指定模式匹配,这两个类都在 java.util.regex 包中,不同于 StringTokenizer类 和 Scanner类,这两个类都是对字符序列的子序列语言符号进行指定分隔。
使用正则表达式 regex 做参数得到一个称为模式的 Pattern 类的实例对象。
// 正则表达式
String regex = "[0-9.]+";
Pattern pattern = Pattern.compile(regex);
System.out.println("模式对象:" + pattern);
参数 flags 可以去下列有效值:
调用该方法返回一个 Matcher 对象 matcher(匹配对象),参数 input 用于给出 matcher 药检索的 String 对象
// 原信息
String s = "这个:76.8元,那个167.38元,最后:123.32元;";
// 正则表达式
String regex = "[0-9.]+";
// 1、模式对象:将给定的正则表达式编译成一个模式
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
// 2、匹配对象:创建匹配器,将给定的输入与模式进行匹配
Matcher matcher = pattern.matcher(s);
System.out.println("匹配对象:" + matcher);

可以进行对匹配对象的各种方法的调用来检索字符串序列
寻找 input(输入的字符串序列) 和 regex(正则表达式) 匹配的下一子序列,成功返回 true ,此时 matcher 再调用 find() 方法时,就会从上一次匹配模式成功的子序列后寻找下一个匹配模式的子字符序列,另外:
判断 input 是否完全和 regex 匹配。
判断从 input 的开始位置是否有和 regex 匹配的子字符序列。
判断 input 从参数 start 指定位置开始是否有和 regex 匹配的子字符序列,start == 0则和 lookingAt() 方法的功能相同。
返回一个将匹配模式的子字符序列全部替换为 replacement 指定的字符序列所得到的 String 对象(input 本身实体不变)。
返回一个将匹配模式的子字符序列中的第一个匹配的子字符序列替换为参数 replacement 指定的字符序列所得到的 String 对象。
// 原信息
String s = "这个:76.8元,那个167.38元,最后:123.32元;";
// 正则表达式
String regex = "[0-9.]+";
// 1、模式对象:将给定的正则表达式编译成一个模式
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
System.out.println("模式对象:" + pattern);
// 2、匹配对象:创建匹配器,将给定的输入与模式进行匹配
Matcher matcher = pattern.matcher(s);
System.out.println("匹配对象:" + matcher);
double sum = 0;
while (matcher.find()) {
// 3、获取匹配的字符并赋值
String item = matcher.group();
System.out.println(item);
sum += Double.parseDouble(item);
}
System.out.println("账单总价格:" + sum);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
您可能感兴趣的文章: