正则表达式:通过一些符号体现,常用于校验。简化了书写。缺点:阅读性较差。
用于操作字符串,底层是对Pattern对象的操作。
正则表达式度对字符串的常见操作:
匹配:String的matches方法。
截取:String的split方法。
替换:String的replaceAll方法。
获取:Pattern对象和Matcher对象
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegularExpresseion {
public static void main(String[] args) {
//截取
String s = "hhhh 3333 hafew";
String[] split = s.split(" +");
for (String string : split) {
System.out.println(string);
}
String s3 = "111111.65756756.432423";//转义字符如果是.需要\\.
String[] split3 = s3.split("\\.");
for (String string : split3) {
System.out.println(string);
}
String s2 = "54754trhrttttsfsdfsdfmmmmmmnoe@@sfe";
String[] split2 = s2.split("(.)\\1+");
for (String string : split2) {
System.out.println(string);
}
//替换
String s4 = "abccddeeffghhhhhhhhhhhhijkllmmnooopqqqrrrsst";
String split4 = s4.replaceAll("(.)\\1+","$1");//$获取前一个分组
System.out.println(split4);
String s5 = "13854681125";
String split5 = s5.replaceAll("(\\d{3})\\d{4}(\\d{4})","$1****$2");//$获取前一个分组
System.out.println(split5);
//获取
String s6 = "da jia hao ming tian fang jia la";
Pattern pattern = Pattern.compile("\\b[a-z]{3}\b");
Matcher matcher = pattern.matcher(s6);
while(matcher.find()){
System.out.println(matcher.group());
}
}
}