java的正则表达式规则_Java基础--正则表达式的规则

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值