package com.xx;
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Pattern&Matcher
*
* @author xx
*
*/
public class Test1 {
public static void main(String[] args) {
// 创建一个正则表达式
Pattern pattern = Pattern.compile("[0-9]+");
System.out.println("正则表达式:" + pattern);
// 使用正则匹配字符串
boolean matches = Pattern.matches("[0-9]+", "abcde123");
System.out.println("是否匹配正则表达式:" + matches);
// 使用正则表达式切割字符串
String[] arr = pattern.split("a1b2c3d4");
Arrays.stream(arr).forEach(System.out::println);
// Matcher提供更加强大的正则匹配操作
Matcher matcher = pattern.matcher("a1b2c3d4");
// 匹配全部字符串
boolean matches2 = matcher.matches();
System.out.println("是否匹配正则表达式:" + matches2);
// 只匹配第一个字符串
boolean lookingAt = matcher.lookingAt();
System.out.println("首字母是否匹配正则表达式:" + lookingAt);
// 是否存在匹配项(类似于contains)
boolean find = matcher.find();
System.out.println("是否存在匹配项:" + find);
Pattern pattern2 = Pattern.compile("[0-9]+");
Matcher matcher2 = pattern2.matcher("aaa2223bb4444");
// 匹配过滤后的字符串,默认返回第一个
matcher2.find();
// 查看最后匹配的结果
String string = matcher2.toString();
System.out.println("string" + string);
// 匹配首个过滤后的子字符串
// matcher2.lookingAt();
// 匹配整个字符串
// matcher2.matches();
// 返回第一个匹配项的索引位置,默认返回第一个
int start = matcher2.start();
// 返回最后一个匹配项的索引位置,默认返回第一个
int end = matcher2.end();
// 返回匹配到的字符串
String group = matcher2.group();
System.out.println(start);
System.out.println(end);// 这里是7是因为2223被当成了一个整体
System.out.println(group);
// eg
Pattern pattern3 = Pattern.compile("[a-z]+");
Matcher matcher3 = pattern3.matcher("aaa111bbb222ccc333");
while (matcher3.find()) {
System.out.println("过滤结果:" + matcher3.group() + ";子字符串下标:" + matcher3.start());
}
}
}
Pattern&Matcher简单用法
猜你喜欢
转载自blog.csdn.net/progammer10086/article/details/105676559
今日推荐
周排行