注意:正则表达式只关注格式是否正确,不关注内容是否有效。

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个(m>n)。

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正则表达式 s报错_Java基础--正则表达式的规则相关推荐

  1. java增强型for报错_Java基础——增强for循环

    java1.5版本引入了一个增强for循环,基本原理和for循环类似. 语法声明:for(表达式:条件表达式) 举例:for (String str : set) 解释:set代表set集合,str代 ...

  2. java package报错_Java基础知识总结 - 超详细篇(上)

    1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre. 2,JRE:Java Runtime Environment,java程序的运行环境,ja ...

  3. java启动监听器报错_JAVA通过JDBC连接Oracle数据库详解【转载】

    1.注册加载驱动 驱动名:DRIVER="oracle.jdbc.driver.OracleDriver"; Class.forName("驱动类名"); 2. ...

  4. java map put报错_java 集合(Map)

    -------------------|Map  储存的数据都是以键值对的形式,键不可重复,值可重复. ----------------------------| HashMap ---------- ...

  5. java里面add报错_java.util.Arrays$ArrayList addAll报错

    执行下面代码时报错: List centerList =WebConstants.SUPPORT_BIG_CENTERS_LIST; // WebConstants.SUPPORT_BIG_CENTE ...

  6. java常见的报错_Java中常见的错误有哪些?

    原标题:Java中常见的错误有哪些? 1.java.lang.Error 错误.是所有错误的基类,用于标识严重的程序运行问题.这些问题通常描述一些不应被应用程序捕获的反常情况. 原因: 1.对系统所访 ...

  7. java.util.list 报错_Java 报错 .updateValue' has an unsupported return type: interface java.util.List...

    问题描述 org.apache.ibatis.binding.BindingException: Mapper method****updateValue' has an unsupported re ...

  8. java编码转换报错_Java中BeanUtils的日期转换 代码报错 怎么解决

    Person类:publicclassPerson{privateDatebirthday;publicDategetBirthday(){returnbirthday;}publicvoidsetB ...

  9. java输入scanner 报错_java Scanner报错

    在构造函数里写了一次Scanner到主函数里又需要输入新的数想在用Scanner就报错错误在最后一行publicclassBank{privatestaticdoubledead=0.0265;pri ...

最新文章

  1. java中静态方法可以被继承_关于java:静态方法中的继承
  2. 较传统AGV优势几何?AMR机器人产业格局将变
  3. linux中-i选项的作用,linux – find中的-prune选项有什么作用?
  4. python代码200行左右_200行Python代码实现2048
  5. rollup函数_Vue3同款打包工具Rollup常用配置
  6. Linux 命令(15)—— umask 命令(builtin)
  7. Atitit 高级人员的指标 参照发达国家(Developed Country)指标 目录 1. 普遍特征是较高的发展指数、人均生产总值、工程化水准和品质 [1]  。科学技术水准等指标 1 2.
  8. Windows Server 2008 R2远程桌面服务配置和授权激活
  9. win10无法装载iso文件_win10系统打开iso格式文件的四种方法
  10. 火车票能不能选座_终于,买火车票也能选座了!
  11. NEFU 262 贪吃的九头龙(树形背包,4级)
  12. android系统蓝牙音箱功能吗,Android蓝牙开发系列文章-其实你的手机可以变成一个蓝牙音箱...
  13. 使用python爬取猎聘网的职位信息
  14. java date类型大小比较_java中date类型如何比较大小
  15. 前端学习01 HTML入门
  16. 进化算法EA——多对象优化遗传(MOO),差分进化法(DE),遗传编程(GP)
  17. (c++)五分制成绩(函数实现)
  18. Java架构师成长之路
  19. append()与prepend()的区别
  20. 【学习总结】Apsara Clouder云计算技能认证:网站建设:部署与发布

热门文章

  1. 永洪Desktop安装——windows版
  2. mysql数据库连接jar_mysql数据库连接包
  3. python循环五角星做法_python实现while循环打印星星的四种形状
  4. 步进电机编写单4拍或4-8拍方式的汇编或c语言控制程序.,(毕业设计)基于单片机的步进电机控制系统(汇编及C语言程序各个)...
  5. 拦截器 java_在Java后端如何添加拦截器
  6. 12c集群日志位置_Oracle 19C RAC 集群日志位置变化
  7. HTML制作搞笑照片,40张创意搞笑的照片PS效果
  8. python读文件的三个方法read()、readline()、readlines()详解
  9. python调用其他文件的类和函数
  10. 计算机弹奏两只老虎爱跳舞,原神风物之诗琴乐谱大全