1,什么是正则表达式

正则表达式是用来处理字符串的,其实正则表达式是非常复杂的,专门去系统学习需要花很长的时间,我们课程主要就是把常用的基础的给大家讲解。
正则表达式可以用来干什么:
(1),匹配字符串:比如用户在数据框中输入了一个数据,我们要来检测这个数据是不是纯数字,是不是邮箱或者是不是电话号码。
(2),用来进行替换操作:比如我们有一篇文章,突然领导觉得里面暴露了很多用户的电话号码,不安全,要求我们把所有电话号码都替换成*号表示。
(3),提取信息,比如,我们在抓取到了很多商品的信息,我们要把这些商品信息的价格都提取出来保存。
 

2,如果判断正则表达式是否匹配

String类提供了一个boolean matches(String regex): 判断该宇符串是否匹配指定的正则表达式。
System.out.println("Hello49032432".matches("H\\w{4}\\d+")); //true

3, 匹配纯文本

严格匹配

        System.out.println("China".matches("China")); //true

3, 点.匹配除换行符\n之外的任何单字符

        System.out.println("A".matches("."));//true
System.out.println("\n".matches("."));//false
System.out.println("AA".matches("."));//false
System.out.println("AA".matches(".A"));//true
//要匹配.字符本身,请使用\.
System.out.println(".".matches("\\."));//true

4,匹配字符出现了n次,n包含0次,1次和多次

格式: 字符{次数}
//匹配出现n次
System.out.println("aaaaaaa".matches("a{7}"));//true
System.out.println("aaaaaaa".matches(".{7}"));//true
{7}表示前面的字符出现了7次,但是像一个问题,如果我们就是要匹配.或者是{
        //匹配.{本身
System.out.println("aaa{{{...".matches("a{3}\\{{3}.{3}"));//true

5,匹配字符出现了n次以上

//匹配N次以上
System.out.println("aaaaa".matches("a{3,}"));//true

6,匹配出现了m到n次之间{m,n}

        //匹配3(含)到5(含)次之间
System.out.println("aaa".matches("a{3,5}"));//true

7,匹配0到N次

星号:*

//匹配0次至多次
System.out.println("".matches("a*"));//true

8,匹配1次到多次

字符+

        //匹配1到多次
System.out.println("a".matches("a+"));//true

9,匹配出现了0次或者1次?

问号:?

        //匹配0或1次
System.out.println("".matches("a?")); //true
System.out.println("a".matches("a?")); //true
System.out.println("aa".matches("a?")); //false

10,匹配数字\d 非数字\D

        //匹配数字
System.out.println("a34567".matches("a\\d+"));
//匹配非数字
System.out.println("a34567".matches("\\D\\d+"));

11,匹配所有的空白字符,包括空格、制表符、回车符、换页符、换行符等\s

        //匹配空白字符。包括空格、制表符、回车符、换页符、换行符等\s
System.out.println(("abc \n012").matches("\\D{3}\\s+\\d{3}")); //true

12,匹配所有非空白字符\s

        //匹配所有的非空白字符\S
System.out.println(("abc \n012").matches("\\S+\\s+\\S+")); //true

13,匹配所有的单词字符,包括 有数字、26英文字母和下划线\w

        //匹配任意数字字母下划线
System.out.println("123fdafadsHKJHK___".matches("\\w+"));//true
System.out.println("fdsafds...~~~".matches("\\w+.+~+"));//true

14,匹配所有的非单词字符\W

        //匹配非单词字符
System.out.println("%%%&&**((^^%$##@@!!---+++=== \n\n".matches("\\W+"));//true
System.out.println("台湾人是中国人".matches("\\W+"));//true

15,匹配括号内任意一个字符[abcd] ;abcd为或者关系

        //匹配[]内任意一个字符
System.out.println("a".matches("[abdc]"));//true

16, 范围匹配[a-z],[A-Z],[0-9]

 //匹配范围单个字符
System.out.println("dfafjiewjhrlhjl4354356434ABC".matches("[a-z0-9A-Z]+")); //true

17,匹配不在范围单个字符[^a-z],[^0-9]

        //匹配不在范围[^a-z],[^0-9]
System.out.println("A".matches("[^a-z]")); //true

18,匹配同时计算

        //匹配同时计算
System.out.println("a".matches("[a-z&&[def]]")); //false
System.out.println("e".matches("[a-z&&[def]]")); //true

19,二选一运算| 或者

        //或者关系
System.out.println("112312".matches("[a-z] |\\d+")); //true

20,边界匹配,以什么开头^,以什么结尾$

        //边界匹配,以什么开头^,以什么结尾$
System.out.println("helloiuowjklkdshku49239784093280end".matches("^he[a-z0-9]+end$")); //true

java 数据类型String 【正则表达式】匹配的更多相关文章

  1. java 数据类型String 【正则表达式】匹配工具 Pattern和Matcher

    Pattern和Matcher的介绍: Pattern对象是正则表达式编译后在内存中的表示形式,因此正则表达式宇符串必须先被编译为Pattern对象,然后再用该Pattern对象创建对应的Matche ...

  2. java中使用正则表达式匹配字符串

    在Java中使用正则表达式去匹配相应的字符串: String importFileRole = "(import)\\s*[a-zA-Z0-9_<>.]+\\;";// ...

  3. Java算法练习——正则表达式匹配

    题目链接 题目描述 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要 ...

  4. Java中输出正则表达式匹配到的内容

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class A { public static void ...

  5. java 中 正则 正则表达式 匹配 url

    不多说 [http|https]+[://]+[0-9A-Za-z:/[-]_#[?][=][.][&]]* 这个就是匹配 网络上的网址 又称 url . 最起码 绝大部分的taobao ur ...

  6. java 从String中匹配数字,并提取数字

    方法如下: private List<FieldList> GetTmpFieldsList(List<String> FieldsList,String tmptableNa ...

  7. 正则表达式匹配${key}并在Java中使用

    1.正则表达式匹配${key} \$\{([a-z]+)\} 能够匹配字符串中以${key}形式的文本(其中key为小写应为字母) .*\$\{([a-z]+)\}.* 可以用来检测文本中是否有${k ...

  8. 详解Java API之正则表达式

    正则表达式描述的是一种规则,符合这种限定规则的字符串我们认为它某种满足条件的,是我们所需的.在正则表达式中,主要有两种字符,一种描述的是普通的字符,另一种描述的是元字符.其中元字符是整个正则表达式的核 ...

  9. Java正则表达式匹配例子

    Java正则表达式匹配例子 package com.ibm.test; import java.util.regex.Matcher; import java.util.regex.Pattern; ...

随机推荐

  1. jvm的垃圾回收

    首先类加载的过程:加载验证准备解析初始化 类加载器: jvm内存模型图: 空着,等以后补上 jvm垃圾收集器 目前只知道,parnew,cms,g1 parnew新生代垃圾回收器,复制算法 cms复制 ...

  2. JavaScript中的多种进制与进制转换

    进制介绍 JavaScript 中提供的进制表示方法有四种:十进制.二进制.十六进制.八进制. 对于数值字面量,主要使用不同的前缀来区分: 十进制(Decimal): 取值数字 0-9:不用前缀. 二 ...

  3. [LCT学习时的一些笔记]

    会找时间写一篇学习笔记的. \(Access\)的操作是把\(x\)和\(x\)所在原树的顶端点的路径变为一个\(splay\) 对于原树边我们有这样的操作,对每个\(splay\)的顶点维护一个父亲 ...

  4. Codeforces 1404D - Game of Pairs(构造)

    Codeforces 题面传送门 & 洛谷题面传送门 首先注意到 \(\sum\limits_{i=1}^{2n}i=\dfrac{2n(2n+1)}{2}=n(2n+1)\equiv n\p ...

  5. Topcoder 10748 - StringDecryption(dp)

    题面传送门 神仙题. 首先这个两次加密略微有点棘手,咱们不妨先从一次加密的情况入手考虑这个问题.显然,一次加密等价于将加密过的序列划分成若干段,每一段都是 \(xd\) 的形式表示这一段中有 \(x\ ...

  6. 关闭 IDEA 自动更新

    关闭 IDEA 的自动检查更新(截图idea 2020 2.x) idea 右下角会有这样的更新提示 2. 关闭 idea 自动检查更新 取消勾选 Automatically check update ...

  7. Redis键空间通知(keyspace notification),事件订阅

      Redis键空间通知(keyspace notification),事件订阅   应用场景:有效期优惠券.24小时内支付.下单有效事件等等. 功能概览 键空间通知使得客户端可以通过订阅频道或模式, ...

  8. MAC——解决问题:打不开,因为它来自身份不明的开发者

    今天在mac电脑上,下载了一个软件,是从某个网页上下载的,点击却不能打开,弹出窗口提示说"打不开xx,因为它来自身份不明的开发者",怎么解决?下面来看下. 方法/步骤     点击 ...

  9. 42-Remove Nth Node From End of List

    Remove Nth Node From End of List My Submissions QuestionEditorial Solution Total Accepted: 106592 To ...

  10. Redis——面试官考题

    总结: 本文在一次面试的过程中讲述了 Redis 是什么,Redis 的特点和功能,Redis 缓存的使用,Redis 为什么能这么快,Redis 缓存的淘汰策略,持久化的两种方式,Redis 高可用 ...