Java学习笔记21(String类补充:正则表达式)
2024-10-12 03:33:24
正如python的re模块,不过Java和Python的正则表达式有一些区别,这里做简单介绍,具体的细节可以参考网上其他的文章:
功能:可以用于检验一个字符串,比如验证用户名,验证密码格式,验证是否是邮箱,等等
示例:
"[0-9]{6,12}"匹配规则:6到12位的数字,比如123456789就是true,12345就是false
"1[3578][0-9]{9}"匹配规则:1开头,第二位是3578中的一个,后面九个任意数字,比如13345678912就是true
"a*b"匹配规则:在多个a或者0个a之后有一个b,b必须是最后一个字符,比如aaaaab就是true,abc就是false
String类中还有几个方法上篇没有提到,这里会用到
基础知识不再介绍,示例:
matches方法:
package demo; public class RegexDemo {
public static void main(String[] args) {
//检查QQ号码,不能0开头,全数字,5位到10位
checkQQ();
//检查手机号,1开头,第二位是34578,共11位
checkTel();
}
public static void checkQQ(){
String QQ = "123456";
boolean b = QQ.matches("[1-9][\\d]{4,9}");
System.out.println(b);//true
}
public static void checkTel(){
String telNumber = "13312345678";
boolean b = telNumber.matches("1[34578][\\d]{9}");
System.out.println(b);//true
}
}
split方法:
package demo; public class RedexDemo { public static void main(String[] args) {
split_1();
split_2();
split_3();
} public static void split_1(){
String str = "I love java";
String[] strArr = str.split(" +");
for (int i = 0; i < strArr.length; i++) {
System.out.println(strArr[i]);
}
//打印出:I love java
} public static void split_2(){
String str = "10-12-45-78-62";
String[] strArr = str.split("-");
for (int i = 0; i < strArr.length; i++) {
System.out.println(strArr[i]);
}
//打印出:10 12 45 78 62
} public static void split_3(){
String str = "192.168.160.1";
String[] strArr = str.split("\\.");
for (int i = 0; i < strArr.length; i++) {
System.out.println(strArr[i]);
}
//打印出:192 168 160 1
}
}
replaceAll方法:
package demo; public class RedexDemo { public static void main(String[] args) {
replaceAll_1();
} public static void replaceAll_1(){
String str = "Hello666123Ilove789java";
String str1 = str.replaceAll("[\\d+]","#");
System.out.println(str1);
//输出:Hello######Ilove###java String str2 = str.replaceAll("[\\d]+", "#");
System.out.println(str2);
//输出:Hello#Ilove#java
}
}
正则表达式练习:
package demo; public class RedexDemo {
public static void main(String[] args) {
//检查邮箱地址
checkMail();
}
public static void checkMail(){
String email = "abc123@sina.com.cn";
boolean b = email.matches("[a-zA-Z0-9_]+@[0-9a-z]+(\\.[a-z]+)+");
System.out.println(b);//true
}
}
最新文章
- LeetCode 20 -- Valid Parentheses
- [linux系统]--Sed
- debian hosts文件中的 127.0.1.1 主机地址
- LinkedHashMap的实现原理(复习)
- TCP握手
- Java集合类之Hashtable
- addlinkedserver
- MongoDB笔记(四)基本管理命令
- JavaScript设计模式之工厂模式
- 看多csdn它还烂论坛?
- 在Ubuntu下搭建FTP服务器的方法
- 算法-java代码实现希尔排序
- BeanFactory not initialized or already closed - call &#39;refresh&#39; before accessing beans via the ApplicationContext
- TensorFlow object detection API
- 理解JavaScript【转】
- Java课程课后作业190315之最大连续子数组(二维数组版)
- 数学基础IV 欧拉函数 Miller Rabin Pollard&#39;s rho 欧拉定理 行列式
- Linux 中的命令链接操作符
- ZooKeeper学习总结 第二篇:ZooKeeper深入探讨
- JS 报表制作
热门文章
- java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@412d7230
- dma_alloc_coherent (建立一致性 DMA 映射函数)
- ImageLoader配置(凝视)
- XML文档读取-DOM
- javascript中的异步 macrotask 和 microtask 简介
- Android项目实战(三十七):Activity管理及BaseActivity的实现
- JavaScript--AJAX页面传值
- 【ANT】时间戳
- Java思维导图之Class对象
- 命令行执行php脚本 中$argv和$argc