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. vue属性绑定不能用双括号表达式

  2. 多线程06.thread守护线程

    package chapter2; public class Demo02 { public static void main(String[] args) { Thread th1=new Thre ...

  3. IDEA远程快速部署SpringBoot项目到Docker环境

    一:基础准备 1.首先在linux服务器安装Docker环境,具体安装步骤及Docker使用参考官网或网络资料(这里重点是快速部署项目到Docker环境) 2.配置Docker远程连接端口 1.vim ...

  4. SpringCloud升级之路2020.0.x版-44.避免链路信息丢失做的设计(1)

    本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 我们在这一节首先分析下 Spring Cloud Gateway 一些其他可能丢失链路信息 ...

  5. R语言与医学统计图形-【34】绘制统计表格

    表的绘制,主要是临床三线表. 1.tableone包 #install.packages('tableone') library(tableone) set.seed(2017) age <- ...

  6. Augustus指南(Trainning部分)

    Augustus指南 官方 Tutorial Index Augustus是一个真核生物基因预测软件,目前有网页服务端和本地版,它基于Hidden-Markov Model(隐马尔科夫链模型HMM)( ...

  7. Docker初试

    1. docker是啥? 自行Google或百度去... https://yeasy.gitbooks.io/docker_practice/introduction/what.html 重要概念: ...

  8. perl 子函数传入多个数组

    perl中的引用和C中的指针一样,用"\"标识,引用后可使用符号"->"取值.解引用则在对应的数据类型前加$,@ 或%. 这里这里用两数组求和做示例,引用 ...

  9. SQL-用到的数据库语句总结

    0.SELECT * FROM  CHARACTER_SETS LIMIT 0,10   #从CHARACTER_SETS表中,从第1行开始,提取10行[包含第1行] 1.SELECT * FROM  ...

  10. 什么是DDL,DML,DCL

    转载自  https://www.2cto.com/database/201610/555167.html DML.DDL.DCL区别 . 总体解释: DML(data manipulation la ...