package day_7_28;
import java.util.Arrays;
/**
* 正则表达式
* 正则本身也是字符串
* 用于匹配字符串中字符次序的‘规则字符串’
* String.matches(正则表达式)方法:将一个字符串和正则表达式匹配,成功返回true 失败返回false
* String.split() 劈开
* String.replaceAll() 全局替换
* 用途:用户表单数据检查,字符串规则检查
*/
public class zhengzeDemo {
public static void main(String[] args) {//正则表达式
String regex1="abc";//abc
String regex2="[abc]";//abc中的任意一个
String regex3="[a-z]";//a-z中的任意一个
String regex4="\\d";//0-9中的任意一个
String regex5="\\D";//非数字字符
String regex6=".";//任意一个字符
String regex7="\\w";//单词字符,a-z,A-Z,0-9 下划线 中的任意一个
String regex8="\\W";//非单词字符
String regex9="\\s";//空白字符 \t\n\r\f
String regex10="\\S";//非空白字符
/**数量词**/
String regex11="a?";//0个或1个a字符 前面的组可有有无
String regex12="a*";//0个或任意多个a字符 前面的字符数量>=0
String regex13="a+";//1个到任意多个a字符 前面的字符数量>=1
String regex14="a{3}";//表示3个a字符
String regex15="a{3,}";//表示3个到任意多个a字符(大于等于3个)
String regex16="a{4,6}";//表示4个到6个a字符
/**
* 正则匹配特殊字符时,需要 \ 进行转义
* 特殊字符包括:[] + .
* java String API 方法matchs()
* 用于测试字符串整体是否符合正则规则
* 检查"a"是否符合[ab]的规则
*
* 分组(序列1|序列2|序列3) 序列1 序列2 序列3 多选一
*/
boolean b="056568".matches("\\d{6}");//检验邮编
boolean c="+8615129609683\b".matches("(\\+86|0086)?\\s?\\d{11}\b");//检验手机号
boolean d="45h4f.jar".matches("\\w+\\.jar");//检验带文件名(不含汉字及特殊字符)的.jar文件
boolean e="魅-+&力.jar".matches(".+\\.jar");//检验带文件名(含汉字及特殊字符)的.jar文件
boolean f="大da.gif".matches(".+\\.(png|jpg|gif|jpeg)");//检验带文件名的图片文件
System.out.println("llll"+c);
/**
* 案例:检查一个字符串是否是整数数组
* 正则:int\[\]
*/
System.out.println("int[ ]".matches("int\\[\\s*\\]"));//true
/**
* 测试email是否合法
*/
boolean g="1546dd@163.com.cn".matches("\\w+@([a-zA-Z0-9]+\\.){2}[a-zA-Z0-9]+");
System.out.println(g);//true
System.out.println(".5flkk".matches("\\.5f?lk+"));//true
/**
* ^代表字符串的开始
* $代表字符串的结束
* 用matches()方法默认是从头到尾 包含^ $边界检查。
*/
/**
* String 提供了API切分方法split()
* String[] data=str.split(正则表达式);
* 将字符串str按照匹配到的位置切开,切除匹配到的字符,将切开的结果保存到字符串数组
*/
String str="tom,110, tom@163.cmo.cn, 北京";
String[] data=str.split(",\\s*");//以 ,空白字符 拆分
System.out.println(data.length);//4
System.out.println(data[3]);//北京
System.out.println("192.168.109.45".split("\\.")[3]);
/**
* String replaceAll(String regex,String replacement);
* 将字符串中匹配到 regex正则表达式的字符串替换成 replacement字符串,并返回新字符串
*/
String str1="你大爷的,我去了你家,你大爷的";
String data1=str1.replaceAll("你大爷的", "**");
System.out.println(data1);
}
}
java-正则表达式
最新推荐文章于 2025-09-11 22:04:22 发布