正则表达式

本文详细介绍了Java中正则表达式的四种核心方法:matches用于匹配整个字符串,replaceAll和replaceFirst用于替换子串,split用于切割字符串。通过实例演示了如何使用这些方法进行电话号码验证、邮箱格式检查、字符串替换和去重等操作。
摘要由CSDN通过智能技术生成
Pattern    表示正则表达式,经过编译得到的正则表达式
Matcher    匹配器
java在字符串中提供了四个方法 直接支持正则表达式
1    matches
2    replaceAll
3    replaceFirst
4    split
正则语法
`[ ] `  代表单个字符串
[ab]    a或者b
[a-z]    所有小写字母
[a-zA-Z]    所有字母
[a-zA-Z0-9_]    数字字母下划线
[^ab]    不是a或者b
[\\w]    等价    [a-zA-Z0-9_]
\w    word    单词字符串
[\\W]    等价    [^\\w]    [^a-zA-Z0-9_]
[\\d]    [0-9]
[\\D]    [^0-9]
[\\s]    空白字符    空格    \r    \n    \t
[\\S]    非空白字符
.    表示任意字符    除了:\r    \n
\\.    只表示    .
^    开头
$    结尾
数量词:
a{2}    正好两个a
a{2,}    至少两个a
a{2,5}    至少两个a 至多5个a
a+    至少一个a
a*    至少零个a
a?    零个或一个a
abc|d    abc或d
ab(c|d)    adc或者abd
示例代码
判断电话
String str = "18888888888";
boolean matches = str.matches("1[3-9]\\d{9}");
判断邮箱
String str = " 888888888@qq.com";
String str2 = " 888888888@qq.com.cn"; 
boolean matches1 = str.matches("\\d{3,10}@qq\\.(com|com\\.cn)");
 boolean matches2 = str2.matches("\\d{3,10}@qq\\.(com|com\\.cn)");
 System.out.println(matches1); 
System.out.println(matches2);
替换
replaceAll
replaceFirst
String str = "abc123abc1abc";
System.out.println(str.replaceAll("\\d+", ""));//abcabcabc 
System.out.println(str.replaceFirst("\\d+", ""));//abcabc1abc
去叠词
String str = "你你你你你好好好好啊啊啊";
 System.out.println(str.replaceAll("(.)\\1+","$1"));//你好啊
取数字
String str = "abc123abc1abc";
System.out.println(str.replaceAll("\\D",""));//1231 
//切割的时候 中间和前面的空字符串会被保留 末尾的空字符串会被省略 
String[] data = str.split("\\D");
System.out.println(Arrays.toString(data));
//[, , , 123, , , 1] String[] data1 = str.split("\\D+");
System.out.println(Arrays.toString(data1));//[, 123, 1]
ip中取数字
String str = "192.168.1.1";System.out.println(str.replaceAll("\\.",""));
正则表达式 所有库的所有表
比如 database.table
.*\\..*            啥意思->    .*代表所有的库    \\. 代表一个.    .*代表所有的表 
文件中去数字
a.txt    内容为
abc123abc123
%s/\d//g        ->    %s删除    /d 所有数字    //g全局    

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值