NO 方法名称 类型 描述
1 public boolean matches(String regex) 普通 正则验证使用
2

public String replaceAll(String regex,String replacement)

普通  全部替换
3

public String replaceFirst(String regex,String replacement)

普通 替换首个
4 public String[] split(String regex) 普通 全部拆分
5

public String[] split(String regex,int limit)

普通 部分拆分

正则符号(所有的正则匹配符号否在Java.util.regex.Pattern;中提供):

1.表示单个字符(每出现一个表示一位):

  • x:表示由x组成;
  • \\:表示转移字符"\"
  • \t:表示制表符,\n表示换行

2.表示字符的选用范围(每出现一个表示一位):

  • [abc]:表示可能是a b c 中的任意一个(注意:只能匹配一个字符);
  •  public class demo1 {
    
         public static void main(String[] args) {
    // TODO Auto-generated method stub
    String str="a";
    System.out.println(str.matches("[abc]"));
    } }
  • public class demo1 {
    
        public static void main(String[] args) {
    // TODO Auto-generated method stub
    String str="ab";
    System.out.println(str.matches("[abc][abc]"));
    } }
  • [^abc]:表示 任何字符,除了 a、b 或 c(否定)

  • [a-zA-Z]:a 到 z 或 A 到 Z,两头的字母包括在内(范围)

  • [0-9]:

3.简化表达式(每出现一个表示一位):

  • .:表示任意一位字符;
  • \d:表示任意一位数字,相当于[0--9];
  •     public static void main(String[] args) {
    // TODO Auto-generated method stub
    String str="2";
    System.out.println(str.matches("\\d"));
    }
    }
  • \D:表示不是一个数字,相当于[^0--9];
  • \s:表示任意一位空格;
  • public class demo1 {
    
        public static void main(String[] args) {
    // TODO Auto-generated method stub
    String str="\t";
    System.out.println(str.matches("\\s"));
    }
    }
  • \S:表示不是任意的一位空格;
  • \w:表示字母(包括大写或小写)  数字 下划线中的任意一位;

4.边界匹配:

  • ^:写在正则之前,表示正则开始;
  • $:写在正则最后,表示正则结束;

5.数字规范:

  • ?:表示正则规范只能出现0次或者1次;
  • public class demo1 {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String str="";
    System.out.println(str.matches("\\d?"));
    String str1="22";
    System.out.println(str1.matches("\\d?"));
    }
    }
  • *:表示出现0次 1次 或者多次;
  • +:表示正则出现1次  或者多次;
  • {n}:表示此正则正好出现n次;
  • {n,}:表示此正则出现n次及n次以上;
  • {n,m}:表示此正则出现n~m次;

6.逻辑表达式:

  • 正则X正则Y:执行正则X后执行正则Y;
  • X|Y:满足正则X或者正则Y其中一个即可;
  • (正则):表示多个正则成为一组;

7.通过String类操作字符:

  • 如:只保留字母
  •  public class demo1 {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String str="afajhj2313535{}]gaj>?';f'afag;lag";
    String regex="[^a-zA-Z]";
    System.out.println(str.replaceAll(regex, ""));
    }
    }
  • 替换(利用split()函数)
  • public class demo1 {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String str="a1b22c333d4444e55555f666666g";
    String regex="\\d+";
    String [] res=str.split(regex);
    for(int i=0;i<res.length;i++)
    System.out.println(res[i]);
    }
    }
  • 用户名有字母 数字 下划线表示并且有6~15个字符;
  • public class demo1 {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String str="wangxiang_123*";
    String regex="\\w{6,15}";
    System.out.println(str.matches(regex));
    String regex1="(\\d|[a-zA-Z]|_|\\*){6,15}";
    System.out.println(str.matches(regex1));
    }
    }
  • 现在某学校的学生成绩那照"姓名:年龄:生日:成绩"格式,这样的数据可以出现多次并以|分隔, 如:ALLEN:19:1993-05-02:98.6|JUDY:21:2000-09-02:78|SARA:20:1994-08-21:97.5
  • 下面对各个判断进行拆分:
    • 名字:
    • String str="zhansan";
      String regex="[a-zA-Z]+";
    • 年龄:
    • String str="19";
      String regex="\\d{1,3}";
    • 生日:
    • String str="1993-09-02";
      String regex="\\d{4}-\\d{2}-\\d{2}";
    • 成绩:
    • String str="98.98";
      String regex="\\d{1,3}(\\.\\d{1,2})?";
    • 单个学生格式综合:
    • String str="ALLEN:19:1993-05-02:98.6";
      String regex="[a-zA-Z]+:\\d{1,3}:\\d{4}-\\d{2}-\\d{2}:\\d{1,3}(\\.\\d{1,2})?";
    • 整个判断:
    • public class demo1 {
      public static void main(String[] args) {
      // TODO Auto-generated method stub
      String str="ALLEN:19:1993-05-02:98.6|JUDY:21:2000-09-02:78|SARA:20:1994-08-21:97.5";
      String regex="([a-zA-Z]+:\\d{1,3}:\\d{4}-\\d{2}-\\d{2}:\\d{1,3}(\\.\\d{1,2})?\\|?)+";
      System.out.println(str.matches(regex));
      }
      }

java学习笔记——正则表达式的更多相关文章

  1. JAVA学习笔记--正则表达式

    正则表达式是一种强大而灵活的文本处理工具.使用正则表达式,可以让我们以编程的方式构造复杂的文本,并对输入的字符串进行搜索. 一.基础正则表达式语法(表格来自J2SE6_API) 字符 x 字符 x \ ...

  2. Java 学习笔记 正则表达式

    2019.3.27 正则表达式 \w 单词字符,匹配[]a-zA-Z_0-9] \w{3} 表示匹配3个字符()ab8,abc,a_c,a5_...) \w+ 至少一个,1到多个 \w* 0个到n个 ...

  3. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  4. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  5. java学习笔记06--正则表达式

    java学习笔记06--正则表达式 正则表达式可以方便的对数据进行匹配,可以执行更加复杂的字符串验证.拆分.替换等操作. 例如:现在要去判断一个字符串是否由数字组成,则可以有以下的两种做法 不使用正则 ...

  6. 20155234 2610-2017-2第九周《Java学习笔记》学习总结

    20155234第九周<Java学习笔记>学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC(Ja ...

  7. Java学习笔记之---API的应用

    Java学习笔记之---API的应用 (一)Object类 java.lang.Object 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个 ...

  8. Java学习笔记【一、环境搭建】

    今天把java的学习重新拾起来,一方面是因为公司的项目需要用到大数据方面的东西,需要用java做语言 另一方面是原先使用的C#公司也在慢慢替换为java,为了以后路宽一些吧,技多不压身 此次的学习目标 ...

  9. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

随机推荐

  1. [bzoj 2216] [Poi2011] Lightning Conductor

    [bzoj 2216] [Poi2011] Lightning Conductor Description 已知一个长度为n的序列a1,a2,-,an. 对于每个1<=i<=n,找到最小的 ...

  2. 制定ip池内随机生成ip地址

    ]) { +] = {}; unsigned mask = 0x0; sscanf(ip_pool, "%[^/]/%d", ip_addr, &mask); long l ...

  3. PSR-2 编码风格规范

    本篇规范是 PSR-1 基本代码规范的继承与扩展. 本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便. 当多名程序员在多个项目中合作时,就需要一 ...

  4. JS基础用法-向数组指定位置插入对象

    在做省市区三级联动的时候,需要在省市区默认位置放上请选择字样. 由于后台的API接口返回的没有请选择字样,那么就需要给返回的数组手动增加请选择 代码如下 // 原来的数组 var array = [& ...

  5. (1) SpringBoot创建发布

    一.安装jdk8 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二.配置环境 ...

  6. 差分【p3948】 数据结构

    顾z 你没有发现两个字里的blog都不一样嘛 qwq 题目描述-->p3948 数据结构 分析 其实这题完全没有分析的 qwq. 只是因为写了差分数组相关知识,所以顺便写一下题解 qwq. 对于 ...

  7. Broken Code

    给一个sorted array 0 0 0 1 1 1 1,然后找出第一个1的位置. 边界情况:array为空或者全0. 思路:二分查找.为了优化,可以先判断最后一个数是不是0. class Solu ...

  8. POJ 2549:Subsets(哈希表)

    [题目链接] http://poj.org/problem?id=2549 [题目大意] 给出一个数集,从中选择四个元素,使得a+b+c=d,最小化d [题解] 我们对a+b建立Hash_table, ...

  9. 【hdu3652】数位dp(浅尝ACM-A)

    向大佬学习 第一次写博客有点紧张,也算是小萌新的突破吧 这次主要是总结一下校内的ACM比赛的各种题,主要是新思路以及学到的新知识 先放一张 下面开始说正事 题面 A wqb-number, or B- ...

  10. 【bzoj1598】【 [Usaco2008 Mar]牛跑步】启发式搜索思路+spfa

    (上不了p站我要死了,侵权度娘背锅) 最近复习搜索,先从启发式搜索来吧. 感觉启发式搜索这玩意挺玄学的,先从其思想入手,做一道经典的K短路. Description BESSIE准备用从牛棚跑到池塘的 ...