正则表达式
来源:互联网 发布:excel如何筛选数据 编辑:程序博客网 时间:2024/06/05 17:21
一.正则表达式的语法
字符:
字符类:
预定义字符:
注意:写作\\d和\\w
边界匹配器:
Greedy 数量词:
二.String类和正则表达式
public String[] split(String regex)
:根据给定正则表达式的匹配拆分此字符串public String replaceAll(String regex,String replacement)
:使用给定的replacement替换此字符串所有匹配给定的正则表达式的子字符串
public class Demo1 { public static void main(String[] args) { //定义一个字符串 String s = "aa-bb-cc"; //-将字符串分割 String[] arr = s.split("-"); for(int x = 0 ; x < arr.length ; x ++){ System.out.print(arr[x]+" "); } System.out.println(); String a = "hello123worldjava123456"; //数字出现一次或多次 String m = "\\d+"; String n = "*"; //用*替换数字 String h = a.replaceAll(m, n); System.out.println(h); }}结果:aa bb cc hello*worldjava*
三.正则表达式的综合练习
1.校验QQ
import java.util.Scanner;/*校验qq: * 规则:5-15位的一个数字 * 不能以0开头 */public class Demo2 { public static void main(String[] args) { //创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请输入qq号:"); String qq = sc.nextLine(); method(qq); } //校验qq的方法 public static void method(String qq){ //不能以0开头,5-15位的数字 String s = "[1-9][0-9]{4,14}"; if(qq.matches(s)){ System.out.println("qq号码正确"); }else{ System.out.println("qq号码错误"); } }}结果:请输入qq号:11113333qq号码正确
2.校验邮箱
import java.util.Scanner;/*邮箱的几种形式:122444555@qq.com zhangsan@163.com zhangsan@westos.com.cn zhangsan@sina.com.cn */public class Demo3 { public static void main(String[] args) { //创建键盘录入对象 Scanner sc = new Scanner(System.in); System.out.println("请输入邮箱:"); String yx = sc.nextLine(); method(yx); } //校验邮箱的方式 public static void method(String yx){ String a = "[a-zA-Z_0-9]+@[a-zA-Z_0-9]{2,6}(\\.[a-z]{3})(\\.[a-z]*)"; if(yx.matches(a)){ System.out.println("正确"); }else{ System.out.println("错误"); } }}结果:请输入邮箱:zhangsan@qq.com.cn正确
三.模式对象和匹配器对象的应用顺序
Pattern:模式对象
public static Pattern compile(String regex)
:将给定的正则表达式编译成要给模式对象public Matcher matcher(CharSequence input)
:创建匹配给定输入与此模式的匹配器
Matcher:匹配器对象
public boolean matches()
:尝试将整个区域与模式匹配
模式和匹配器对象的典型顺序:
- 将正则规则编译成要给的模式对象(返回一个模式对象)
- 使用模式对象去调用一个matcher()返回一个匹配器对象
- 然后再调用匹配器对象的一些功能
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Demo4 { public static void main(String[] args) { Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaab"); boolean flag = m.matches(); System.out.println(flag); }}结果:true
阅读全文
0 0
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 理解MySQL——索引与优化
- 微信公众号开发一:接入指南
- java虚拟机笔记
- Linux环境下安装和启动mongodb
- 查看磁盘的UUID
- 正则表达式
- E
- 10.错误和异常
- Leetcode561. Array Partition I
- 关于数据库 SQL Server 和 Oracle 以及 MySQL
- Kotlin入门(12)类的概貌与构造
- Cname与A记录(Address)区别
- WIFI 状态栏显示的wifi信号强度与wifisetting列表不一致
- 形象了解--快速算法