Java基础--正则表达式的规则
阅读目录
一、字符集合, []表示一个字符。
二、预定义字符集* ( . )表示任意一个字符。
三、数量词
四、java的String中正则表达式写法(转义的问题)
五、字符串的替换与分解(使用正则表达式)
注意:正则表达式只关注格式是否正确,不关注内容是否有效。
回到顶部
一、字符集合, []表示一个字符。
1、[abc] :指a,b,c中的任意一个字符。
2、[^abc]:指除了a,b,c外的任意字符。
3、[a-z]:表示a到z间的任意一个字符。
4、[a-zA-Z0-9]:表示a到z,A到Z,0到9的任意一个字符。
5、[a-z[^bc]]:等价于[ad-z],指a到z间除了b,c字符的任意字符。
回到顶部
二、预定义字符集* ( . )表示任意一个字符。
1、\d : 数字字符集,相当于[0-9],
2、\w:单词字符集,相当于[a-zA-Z0-9_]。
3、\s:空白字符集,相当于[\t\n\f\r\xoB]。
4、\D:非\d
5、\W:非\w
6、\S:非\s
回到顶部
三、数量词
1、表示0个或一个。
2、* 表示0个或无穷个。
3、+ 表示1个或无穷个。
4、{n}表示n个。
5、{n, }表示n个到无穷个。
6、{n, m }表示n个到m个(mn)。
7、() 表示一个整体。比如:(\+86)就是表示+86,此时+需要转义。
8、^在[]中表示非,而放在[]外,表示以……开头。比如^[0-9]就是以数字0-9开头。
9、$表示以……结尾,比如[0-9]$就是指以数字0-9结尾。
回到顶部
四、java的String中正则表达式写法(转义的问题)
1、11位手机号正则表达式: "^[0-9]{11}$" ;
2、邮箱正则表达式:"^[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z0-9])+$" ;此时若使用String regex = " [a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.[a-zA-Z0-9])+ "; 由于java字符串认为 ( . ) 不需要进行转义,所以写成 ( \. )会报错,需要对 \ 进行转义, 即写成 ( \\. )
3、简单的日期表达式:"^\\d{4}(\\-|\\/|\\.)\\d{1,2}\\1\\d{1,2}$" ;\1表示匹配第一个小括号的内容,即(\-|\/|\.)
1 public class Test {
2 public static void main(String[] args) {
3 String regexDemo1 = "^\\d{4}(\\-|\\/|\\.)\\d{1,2}\\1\\d{1,2}$";
4 String str = "2019.05.22";
5 System.out.println(str.matches(regexDemo1)); // 返回true
6
7 // regexDemo1等价于regexDemo2。 其 \1 指的即为第一个小括号(), 即 \1 指的是 (\-|\/|\.)
8 String regexDemo2 = "^\\d{4}(\\-|\\/|\\.)\\d{1,2}(\\-|\\/|\\.)\\d{1,2}$";
9 System.out.println(str.matches(regexDemo2)); // 返回true
10 }
11 }
回到顶部
五、字符串的替换与分解(使用正则表达式)
1、public boolean matches(String regex);判断当前字符串对象是否与参数regex格式相匹配。
2、public String replaceAll(String regex, String replacement);将字符串中符合regex格式的子串替换成replacement,此时并未改变原始字符串。
3、public String[] split(String regex); 将字符串使用regex标记分割,并将分割后的单词存入字符串数组中。
1 public class Test {
2 public static void main(String[] args) {
3 String regex = "[0-9]+";
4 String str = "hello123world123";
5 System.out.println("原始字符串为: " + str);//输出hello123world123
6
7 System.out.println("替换字符串后为: " +str.replaceAll(regex, " welcome ")); //输出hello welcome world welcome
8 System.out.println("原字符串不变:" + str); //不会改变原来的字符串,输出为hello123world123
9
10 System.out.println("输出切割后的字符串: ");
11 String digitWord[] = str.split(regex); // 以regex格式分割
12 for (String s : digitWord) {
13 System.out.println(s);
14 }
15 }
16 }
17 /*
18 测试结果为:
19 原始字符串为: hello123world123
20 替换字符串后为: hello welcome world welcome
21 原字符串不变:hello123world123
22 输出切割后的字符串:
23 hello
24 world
25 */
Java基础--正则表达式的规则 相关文章
Java基础--常用API--字符串相关API
阅读目录 一、java.lang.String 二、java.lang.StringBuffer、java.lang.StringBuilder 三、String、StringBuffer、StringBuilder的区别 四、java.util.StringTokenizer 回到顶部 一、java.lang.String 1、string对象不可变,被final修饰,不能被继承。 2、
Java基础--面向对象以及相关知识
阅读目录 一、 面向对象特征与原则 二、构造方法、方法重载(overload)与方法重写(override) 三、JVM内存结构(方法区、栈、堆) 四、抽象类、接口、extends、implements、向上造型、instanceof 五、访问控制符 六、static、final关键字 七、参数传值(值
centos7系统安装后的基础优化2
1、更改网卡信息 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 1、编辑网卡 # cd /etc/sysconfig/network-scripts/ # mv ifcfg-ens33 ifcfg-eth0 # mv ifcfg-ens37 ifcfg-eth1 # vim ifcfg-eth0 TYPE=Ethernet BOO
Java 8 新特性
阅读目录 一、Lambda 表达式 1、什么是 Lambda 表达式 2、基础语法: 3、举例: 4、核心函数式接口 5、方法引用 6、构造器引用 7、数组引用 二、Stream API 1、什么是 Stream API 2、Stream 操作步骤 3、创建流的方式 4、流水线操作(操作流) 5、终止操作
基础语法学习
注释 单行注释//注释 多行注释/*注释*/ JavaDoc:文档注释/***/ ?/** ? *@Description 内容 ? *@一些注释 ? */ 标识符和关键字 关键字 所有标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始;不能使用关键字作为变量名或方法名,同时标识符是
Java基础--常用API--日期相关API
阅读目录 一、java.util.Date 二、java.text.SimpleDateFormat 三、java.util.Formatter 四、java.util.Calendar 五、获取时间戳的方法、快慢 六、Java 8新特性 七、java.time.LocalDateTime 八、java.time.Duration 九、java.time.Instant 十、java.time.fo
Java基础--多线程
阅读目录 一、程序、进程、线程 1、区别 2、关系 3、为什么使用线程 二、多线程 4、同步与异步: 5、并行与并发: 6、线程安全与不安全: 7、Java的内存模型(JMM): 8、原子性、可见性、有序性: 9、线程的run()与start()方法的区别: 三、线程的生命周期
Java基础--常用API--集合类相关API
阅读目录 一、泛型 二、常用集合类 1、体系分类: 2、分类如下 3、集合与数组的区别 三、Collection集合 1、相关方法: 2、迭代器 四、Set、List集合 1、Set与List集合的区别: 2、List: 3、Set: 4、数组转集合(List): 5、总结: 五、队列与栈 1、队列:
Java基础--常用API--IO流相关API
阅读目录 一、IO流 1、定义: 2、分类: 3、常用类与接口: 二、字节流 1、字节输入流: 2、字节输出流 三、字符流 1、字符输入流 2、字符输出流 四、字节流补充 1、序列化流(ObjectOutputStream,ObjectInputStream) 五、File类 1、定义: 2、方法: 六、
Java基础--JDBC
阅读目录 一、JDBC 1、JDBC简介 2、JDBC工作步骤 3、为什么要释放资源、关闭连接 二、加载驱动、建立连接 1、oracle 2、mysql(8.0之后的版本) 3、sql server 2005 三、Statement、PreparedStatement 、CallableStatement、ResultSet、ResultSetMetaData 1