什么是正则表达式?

正则表达式的定义:这是一种字符串的语法规则,是一种可以用于模式匹配和替换的规则,主要用于文本和字符串的处理(匹配,查找,替换,判断字符串)。一个正则表达式是由普通的字符(a~z)以及特殊字符(元字符)组成的文字模式,用以描述在查找文字主体时待匹配的一个或多个字符串。下面我们会介绍一些常用的元字符

正则表达式的元字符

元字符的定义:元字符:元字符使得正则表达式具有处理能力,指的是那些在正则表达式中具有特殊意义的专用字符,可以规定其前导字符在目标对象中的出现模式

元字符

在正则表达式中的写法

意义

.

.

任何一个字符

\d

\\d

0-9之间的任意一个数字

\D

\\D

任何一个非数字字符

\s

\\s

空格类字符'\t','\n'等等

\S

\\S

非空格类字符

\w

\\w

可用于标识符的字符,不包括美元符

\W

\\W

不能可用于标识符的字符

\p{Lower}

\\p[Lower]

小写字母[a~z]

\p{Upper}

\\p{Upper}

大写字母[A~Z]

\p{ASCII}

\\p{ACSII}

ASCII字符

\p{Alpha}

\\p{Alpha}

字母

\p{digit}

\\p{digit}

数字字符[0~9]

\p{Alnum}

\\p{Alnum}

字母或数字

\p{Punct}

\\p{Punct}

标点符号

\p{graph}

\\p{graph}

可视字符,\p{Alnum},\p{Punct}

\p{Print}

\\p{Print}

可打印字符

\p{Blank}

\\p{Blank}

空格或制表符

\p{Cntrl}

\\p{Cntrl}

控制字符[\x00~\x1F\x7F]

上面的表中,基本上就是一些比较常用的元字符,我们需要注意元字符在正则表达式中的写法,不能直接用元字符来编写我们的正则程序

正则表达式中的方括号[]

元字符可以是放在[]中的任意单个字符(如[a]表示匹配单个小写字符a),也可以是字符序列(如[a-d]表示匹配a-d即a,b,c,d中的任意一个字符,而\w表示任意英文字母、数字及下划线)。例如:regex="[159]ABC",那么"1ABC","5ABC","9ABC"都是与正则表达式regex匹配的字符,方括号的含义如下:

注:方括号内允许嵌套,可以进行交,并,差运算

方括号表达式

含义

[abcde]

匹配a,b,c,d,e中的任意一个字符

[a-h]

匹配a到h之间的任意一个字符

[^fgh]

匹配除f,g,h外的任意一个字符

[a-d[m-p]]

代表a~d,或m~p中的任意一个字符(并)

[a-z&&[def]]

代表d,e或f中的任意一个字符串(交)

[a-z&&[^bc]]

代表a,d,e,f(差)

正则表达式中的限定符

在使用正则表达式时,我们知道元字符一般只能匹配一个位置或一个字符,如果需要某一类型的元字符多次输入,逐个输入,或是要匹配多个字符的时候就相当麻烦,这个时候我们可以使用正则表达式的限定符来重复输入。例如:regex="hello[246]?",那么"hello","hello2","hello4","hello6"都是与regex匹配的字符串,下面是一些常见的限定符

带限定符号的模式

含义

X?

X出现0次或1次

X*

X出现0次或多次

X+

X出现1次或多次

X{n}

X出现n次

X{n,}

X至少出现n次

X{n,m}

X至少出现n至m次

XY

X后面跟Y

X|Y

X或Y

然后用法的话相信大家不会陌生吧:

String regex="自己定义的正则表达式";

String test="需要正则的字符串对象";

boolean isMatch=test.matches(regex);

if(isMatch){

//test为匹配成功的数据

}else{

//test为匹配失败的数据

}

可能有些人会说,我经常用到的正则表达式中有Pattern和Matcher两个类,这两个类是干嘛的呢?

Pattern: 一个Pattern是一个正则表达式经编译后的表现模式。

Matcher: 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。

首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作。

java用正则表达式大全_Java 正则表达式 大全相关推荐

  1. java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍

    java正则表达式PHP中的正则表达式函数介绍 正则表达式(Regular Expression) 正则表达式系统: 1.POSIX 2.Perl PHP中使用的regex是PCRE: NOTE:PC ...

  2. java qq验证手机号码_java正则表达式表单验证类工具类(验证邮箱、手机号码、qq号码等)...

    package util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 使用正则表达式进行表单验证 * ...

  3. java 数字范围正则_Java 正则表达式

    正则表达式 概述 正则表达式定义了字符串的模式.正则表达式可以用来搜索.编辑或处理文本.正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. java.util.regex 包主要包括以下三 ...

  4. java 正则 任意字符_Java正则表达式 去掉括号内任意字符

    前言: 刚开始以为 (.*) 就是括号内任意字符了,试了不行. 错误点 1.括号需要转义(是正则表达式关键字) 2.不是任意字符,而是 除了右括号的任意字符 String content = &quo ...

  5. java正则表达式对象_Java正则表达式之Pattern类

    java.util.regex.Pattern类指正则表达式的编译表示形式.即将你的正则表达式字符串编译成java正则表达式对象.所有的正则表达式字符串在使用前都必须先编译成Pattern类的实例.然 ...

  6. java 正则表达式语法_Java 正则表达式基础语法

    基础符号 首尾匹配^:匹配输入字符串开始的位置 $:匹配输入字符串结尾的位置 例:"^hello$"含义为该字符串开头必须为h,结尾必须为oprivate static void ...

  7. java正则表达式 引用_java – 正则表达式检索引用的字符串和引用字符

    我有一种语言,它将一个字符串定义为单引号或双引号,通过加倍将字符串转义为字符串中的分隔符.例如,所有以下内容都是合法字符串: 'This isn''t easy to parse.' 'Then Jo ...

  8. java正则表达式笔记_java正则表达式笔记

    正则表达式是一种强大的字符串处理工具,平时经常会用到.这里完整的做一次总结,以便查阅记忆. 1. 字符串中的正则表达式 使用正则表达式可以对字符串进行查找.提取.分割.替换等操作.String类当中提 ...

  9. java regex match 替换_java正则表达式四种常用的处理方式(匹配、分割、替代、获取)...

    java 正则表达式高级篇,介绍四种常用的处理方式:匹配.分割.替代.获取,具体内容如下 package test; import java.util.regex.Matcher; import ja ...

  10. java 正则判断二进制_java正则表达式

    1.java正则表达式 \\d表示数字  \\d+表示一到多个数字  \\d*表示匹配一个数字零次或者多次  \\d?匹配一个数字零次或一次 \w 等价于[A-Za-z0-9]  \W等价于[^A-Z ...

最新文章

  1. mysql 应用程序优化
  2. Moodle的qq登录版块的使用
  3. 关于Kafka 的 consumer 消费者手动提交详解
  4. Nginx的Gzip模块配置指令(三)
  5. JAVA基础学习预科部分 (Markdown + dox)2021/2/22持续更新中
  6. 如何手工配置DBControl
  7. Oracle varchar类型数值排序问题
  8. 可怕!离职都开始内卷了?!
  9. 成人教育考试报名照片的尺寸是多少?大一寸照片怎么做?
  10. 程序员在国外:在加拿大IT公司工作三年的一些感受
  11. 大学python教材实验七字典与集合答案_Python中的字典与集合
  12. 69 MyBatis和Spring整合
  13. HTML-图文排版如何以代码实现
  14. 微信小程序 map 自定义地图数据,实现方式+思路+代码(最简易的实现方式)
  15. java聊天室代码实训总结_java实训聊天系统报告总结
  16. 叶荣添给你的11条投机建议!
  17. 区块链应用成功案例有哪些?
  18. 【SVM分类】基于狮群算法优化实现SVM数据分类matlab源码
  19. 【高考40周年】机器人数学考了134分,要上清华北大NLP是最大难关
  20. 发散性测试用例设计题

热门文章

  1. python车牌识别使用训练集_TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
  2. 操作系统教程答案(谢旭升,朱明华版)
  3. matlab 超像素合并,基于图论的超像素分割及其合并算法
  4. 数字臧品系统开发运行逻辑数字臧品系统开发源码搭建流程
  5. 基于MSP430f5529的红外循迹小车
  6. 清华姚班和100个“张小龙” | 中国AI天才养成计划
  7. jeecg框架解决跨域问题
  8. IE恶意修改防护大法(转)
  9. 算法——排序——快速排序图解动画
  10. 智能变电站基本原理和IEC61850