Java学习之正则表达式
Java正则表达式字符串模式。
正则表达式可以用来搜索、编辑和处理文本。
正则表达式不尽限于一种语言,但在每一种语言中又细微的差别。
java.util.regex包中主要有这3个类:
- Pattern类:
pattern对象是一个正则表达式的编译表示。Pattern类没有公共构造方法。要创建一个Pattern对象,你必须首先调用其公共静态编译方法,它返回一个Pattern对象。该方法接受一个正则表达式作为它的第一个参数。
- Matcher类:
Matcher对象是对输入字符串进行解释和匹配操作的引擎。与Pattern类一样,Matcher也没有公共构造方法。你需要调用Pattern对象的matcher方法来获得一个Matcher对象。
- PatternSyntaxException:
PatternSyntaxException是一个非强制异常类,它表示一个正则表达式模式中的语法错误。
捕获组
捕获组是把多个字符当一个单独单元进行处理的方法,它通过对括号内的字符分组来创建。
例如,正则表达式(dog) 创建了单一分组,组里包含"d","o",和"g"。
捕获组是通过从左至右计算其开括号来编号。例如,在表达式((A)(B(C))),有四个这样的组:
- ((A)(B(C)))
- (A)
- (B(C))
- (C)
可以通过调用matcher对象的groupCount方法来查看表达式有多少个分组。groupCount方法返回一个int值,表示matcher对象当前有多个捕获组。
还有一个特殊的组(组0),它总是代表整个表达式。该组不包括在groupCount的返回值中。
正则表达式语法:用符号来描述书写规则: /中间写正则表达式/ |:代表或者 ():优先级
字符 | 说明 |
\ |
将下一字符标记为特殊字符、文本、反向引用、八进制的转义符。例如“n”匹配“n”,“\n”匹配换行符 “\t”匹配制表符,“\(”匹配“(” |
^ | 匹配开头;/^ve/ 匹配以ve开头的 |
$ | 匹陪结尾 ;/ve$/ 以ve结尾的 |
\d | 任意一个数字 |
\D | 非数字字符匹配。等效于 [^0-9]。 |
\w | 任意一个数字或字母 |
\s | 任意字符串 |
{n} | 把左边的表达式重复n遍 |
{m ,n} | 把左边的表达式重复至少m遍,至多n遍 |
{m,} | 把左边的表达式重复至少m遍,至多不限 |
+ | 左边的表达式,至少出现一次,至多不限,相当于{1,} |
* | 左边的表达式,至少出现0次,至多不限,相当于{0,} |
? | 左边的表达式,至少出现0次,至多1次,相当于{0,1} |
[a,b,c] | 只能取方括号中内容之一,[a-z]从a~z之间取任取一个字母,[1-9]从1~9数字中任取一个 |
. | 匹配除"\r\n"之外的任何单个字符 |
[^xyz] | 反向字符集。匹配未包含的任何字符 |
\b | 匹配一个字边界,即字与空格间的位置。例如,"er\b"匹配"never"中的"er",但不匹配"verb"中的"er" |
\B | 非字边界匹配。"er\B"匹配"verb"中的"er",但不匹配"never"中的"er"。 |
\cx | 匹配 x 指示的控制字符。例如,\cM 匹配 Control-M 或回车符。x 的值必须在 A-Z 或 a-z 之间。如果不是这样,则假定 c 就是"c"字符本身。 |
\f | 换页符匹配。等效于 \x0c 和 \cL。 |
\r | 匹配一个回车符。等效于 \x0d 和 \cM。 |
\s | 匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。 |
\S | 匹配任何非空白字符。与 [^ \f\n\r\t\v] 等效。 |
\w | 匹配任何字类字符,包括下划线。与"[A-Za-z0-9_]"等效。 |
\W | 与任何非单词字符匹配。与"[^A-Za-z0-9_]"等效。 |
\un | 匹配 n,其中 n 是以四位十六进制数表示的 Unicode 字符。例如,\u00A9 匹配版权符号 (©)。 |
Matcher类的方法
索引方法
索引方法提供了有用的索引值,精确表明输入字符串中在哪能找到匹配:
序号 | 方法及说明 |
---|---|
1 |
public int start() 返回以前匹配的初始索引。 |
2 |
public int start(int group) 返回在以前的匹配操作期间,由给定组所捕获的子序列的初始索引 |
3 |
public int end() 返回最后匹配字符之后的偏移量。 |
4 |
public int end(int group) 返回在以前的匹配操作期间,由给定组所捕获子序列的最后字符之后的偏移量。 |
研究方法
研究方法用来检查输入字符串并返回一个布尔值,表示是否找到该模式:
序号 | 方法及说明 |
---|---|
1 |
public boolean lookingAt() 尝试将从区域开头开始的输入序列与该模式匹配。 |
2 |
public boolean find() 尝试查找与该模式匹配的输入序列的下一个子序列。 |
3 |
public boolean find(int start) 重置此匹配器,然后尝试查找匹配该模式、从指定索引开始的输入序列的下一个子序列。 |
4 |
public boolean matches() 尝试将整个区域与模式匹配。 |
转载于:https://www.cnblogs.com/sdlzspl/p/7298041.html
Java学习之正则表达式相关推荐
- Java学习-17 正则表达式简述
Java学习-17 正则表达式 1.什么是正则表达式? 正则表达式是构成搜索模式(search pattern)的字符序列. 当您搜索文本中的数据时,您可使用搜索模式来描述您搜索的内容. 正则表达式可 ...
- Java学习笔记——正则表达式(Pattern类、Matcher类和PatternSyntaxException)
目录 一.Pattern类 (一)Pattern 介绍 (二)Pattern 方法 二.Matcher类 (一)Matcher 类介绍 (二)Matcher 类方法 三.PatternSyntaxEx ...
- Java学习之正则表达式篇
文章目录 快速入门 正则表达式基本语法 1. 字符匹配符 2. 选择匹配符 3. 限定符 4. 定位符 5. 分组组合 .反向引用符 6.特殊字符 三个常用类 Pattern Matcher Patt ...
- Java学习day028(正则表达式)
JavaSe的学习也已经接近尾声了,还有很多笔记没整理,先整理正则表达式的 后面整理的有些不是太认真,都以后在整理 正则表达式 1.什么是正则表达式 2.元字符 3.反义符 4.重复(位数/长度) 5 ...
- Java学习笔记-正则表达式的模式匹配
正则表达式(Regex)为被匹配的文本模式提供了简明扼要的规范. 关于正则表达式的语法,可以参考相关书籍和这个网址:http://edu.yesky.com/edupxpt/18/2143018.sh ...
- JAVA学习 API_day02(正则表达式, StringBuider, 包装类, Collection集合类接口)
正则表达式, 包装类, Collection集合类接口 1.正则表达式 2.StringBuider类 3.包装类 4.Collection接口 1.正则表达式 public final class ...
- Java学习笔记--StringTokenizer的使用
2019独角兽企业重金招聘Python工程师标准>>> Java Tips: 使用Pattern.split替代String.split String.split方法很常用,用于切割 ...
- java js 正则表达式_如何在JavaScript与Java中使用正则表达式
如何在JavaScript与Java中使用正则表达式 发布时间:2021-02-11 13:16:01 来源:亿速云 阅读:69 作者:Leah 如何在JavaScript与Java中使用正则表达式? ...
- java 中的正则表达式_Java中的正则表达式–软介绍
java 中的正则表达式 正则表达式是一种可以应用于文本(Java中的String)的模式. Java提供了java.util.regex包,用于与正则表达式进行模式匹配. Java正则表达式与Per ...
- Java中的正则表达式–软介绍
正则表达式是一种可以应用于文本(Java中的String)的模式. Java提供了java.util.regex包,用于与正则表达式进行模式匹配. Java正则表达式与Perl编程语言非常相似,并且非 ...
最新文章
- Hazelcast集群服务(2)
- Hinton新作!越大的自监督模型,半监督学习需要的标签越少
- Linux日常运维管理技巧
- golang 结构体struct 标签tag 标记 `` 简介
- 什么是循环神经网络——学习笔记
- 使用 user agent 判断微信内置浏览器版本信息
- SAP UI5的表格里如何显示复合列
- CF438D-The Child and Sequence【线段树】
- Photoshop CS6将多张图片合成GIF动态图或视频,并将其保存导出
- 工作中:如何在实际工作中处理 NULL,并给出一些指南
- 注解-@Conditional的使用
- fiddler抓包工具1
- 用Java+xml配置方式实现Spring数据事务(编程式事务)
- 基于K—近邻的车牌号识别小实验
- EXCEL使用技巧大全:输入的技巧
- 模拟扑克牌花色:♠ ♥ ♦ ♣ * 牌号:A 2 3 4 5 6 7 8 9 10 J Q K * 大王、小王 * * 1.生成一副牌 * 2.然后发牌
- 网络安全认证与加密协议算法整合
- 当你们在谈论React和Vue的时候,我在用Mithril
- 饺子的吃法,你学会了么?
- APP指的是智能手机的第三方应用
热门文章
- 1.4.2.PHP5.6 狐教程-环境(Mac下 PHP开发环境 配置及安装 php5.6.x nginx mysql)
- 大数据,数据分析,机器学习,架构等相关系统名称名词解释
- docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (windows系统)
- PHPSTORM 中文版/汉化 即常用快捷键和配置
- 阶段3 3.SpringMVC·_03.SpringMVC常用注解_2 RequestBody注解
- 阶段3 2.Spring_03.Spring的 IOC 和 DI_1 ioc的概念和作用
- BugBugBugBugBugBugBugBugBugBugBugBugBugBugBug
- 使用jekins自动构建部署java maven项目(jdk1.7+tomcat7.0+jenkins2.19.3)
- [深入Maven源代码]maven绑定命令行参数到具体插件
- 共享一款基于 jQuery 的多功能对话框插件 jBox,强不强大,用了才知道:)