正如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
}
}

最新文章

  1. LeetCode 20 -- Valid Parentheses
  2. [linux系统]--Sed
  3. debian hosts文件中的 127.0.1.1 主机地址
  4. LinkedHashMap的实现原理(复习)
  5. TCP握手
  6. Java集合类之Hashtable
  7. addlinkedserver
  8. MongoDB笔记(四)基本管理命令
  9. JavaScript设计模式之工厂模式
  10. 看多csdn它还烂论坛?
  11. 在Ubuntu下搭建FTP服务器的方法
  12. 算法-java代码实现希尔排序
  13. BeanFactory not initialized or already closed - call &#39;refresh&#39; before accessing beans via the ApplicationContext
  14. TensorFlow object detection API
  15. 理解JavaScript【转】
  16. Java课程课后作业190315之最大连续子数组(二维数组版)
  17. 数学基础IV 欧拉函数 Miller Rabin Pollard&#39;s rho 欧拉定理 行列式
  18. Linux 中的命令链接操作符
  19. ZooKeeper学习总结 第二篇:ZooKeeper深入探讨
  20. JS 报表制作

热门文章

  1. java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@412d7230
  2. dma_alloc_coherent (建立一致性 DMA 映射函数)
  3. ImageLoader配置(凝视)
  4. XML文档读取-DOM
  5. javascript中的异步 macrotask 和 microtask 简介
  6. Android项目实战(三十七):Activity管理及BaseActivity的实现
  7. JavaScript--AJAX页面传值
  8. 【ANT】时间戳
  9. Java思维导图之Class对象
  10. 命令行执行php脚本 中$argv和$argc