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学习之正则表达式相关推荐

  1. Java学习-17 正则表达式简述

    Java学习-17 正则表达式 1.什么是正则表达式? 正则表达式是构成搜索模式(search pattern)的字符序列. 当您搜索文本中的数据时,您可使用搜索模式来描述您搜索的内容. 正则表达式可 ...

  2. Java学习笔记——正则表达式(Pattern类、Matcher类和PatternSyntaxException)

    目录 一.Pattern类 (一)Pattern 介绍 (二)Pattern 方法 二.Matcher类 (一)Matcher 类介绍 (二)Matcher 类方法 三.PatternSyntaxEx ...

  3. Java学习之正则表达式篇

    文章目录 快速入门 正则表达式基本语法 1. 字符匹配符 2. 选择匹配符 3. 限定符 4. 定位符 5. 分组组合 .反向引用符 6.特殊字符 三个常用类 Pattern Matcher Patt ...

  4. Java学习day028(正则表达式)

    JavaSe的学习也已经接近尾声了,还有很多笔记没整理,先整理正则表达式的 后面整理的有些不是太认真,都以后在整理 正则表达式 1.什么是正则表达式 2.元字符 3.反义符 4.重复(位数/长度) 5 ...

  5. Java学习笔记-正则表达式的模式匹配

    正则表达式(Regex)为被匹配的文本模式提供了简明扼要的规范. 关于正则表达式的语法,可以参考相关书籍和这个网址:http://edu.yesky.com/edupxpt/18/2143018.sh ...

  6. JAVA学习 API_day02(正则表达式, StringBuider, 包装类, Collection集合类接口)

    正则表达式, 包装类, Collection集合类接口 1.正则表达式 2.StringBuider类 3.包装类 4.Collection接口 1.正则表达式 public final class ...

  7. Java学习笔记--StringTokenizer的使用

    2019独角兽企业重金招聘Python工程师标准>>> Java Tips: 使用Pattern.split替代String.split String.split方法很常用,用于切割 ...

  8. java js 正则表达式_如何在JavaScript与Java中使用正则表达式

    如何在JavaScript与Java中使用正则表达式 发布时间:2021-02-11 13:16:01 来源:亿速云 阅读:69 作者:Leah 如何在JavaScript与Java中使用正则表达式? ...

  9. java 中的正则表达式_Java中的正则表达式–软介绍

    java 中的正则表达式 正则表达式是一种可以应用于文本(Java中的String)的模式. Java提供了java.util.regex包,用于与正则表达式进行模式匹配. Java正则表达式与Per ...

  10. Java中的正则表达式–软介绍

    正则表达式是一种可以应用于文本(Java中的String)的模式. Java提供了java.util.regex包,用于与正则表达式进行模式匹配. Java正则表达式与Perl编程语言非常相似,并且非 ...

最新文章

  1. Hazelcast集群服务(2)
  2. Hinton新作!越大的自监督模型,半监督学习需要的标签越少
  3. Linux日常运维管理技巧
  4. golang 结构体struct 标签tag 标记 `` 简介
  5. 什么是循环神经网络——学习笔记
  6. 使用 user agent 判断微信内置浏览器版本信息
  7. SAP UI5的表格里如何显示复合列
  8. CF438D-The Child and Sequence【线段树】
  9. Photoshop CS6将多张图片合成GIF动态图或视频,并将其保存导出
  10. 工作中:如何在实际工作中处理 NULL,并给出一些指南
  11. 注解-@Conditional的使用
  12. fiddler抓包工具1
  13. 用Java+xml配置方式实现Spring数据事务(编程式事务)
  14. 基于K—近邻的车牌号识别小实验
  15. EXCEL使用技巧大全:输入的技巧
  16. 模拟扑克牌花色:♠ ♥ ♦ ♣ * 牌号:A 2 3 4 5 6 7 8 9 10 J Q K * 大王、小王 * * 1.生成一副牌 * 2.然后发牌
  17. 网络安全认证与加密协议算法整合
  18. 当你们在谈论React和Vue的时候,我在用Mithril
  19. 饺子的吃法,你学会了么?
  20. APP指的是智能手机的第三方应用

热门文章

  1. 1.4.2.PHP5.6 狐教程-环境(Mac下 PHP开发环境 配置及安装 php5.6.x nginx mysql)
  2. 大数据,数据分析,机器学习,架构等相关系统名称名词解释
  3. docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (windows系统)
  4. PHPSTORM 中文版/汉化 即常用快捷键和配置
  5. 阶段3 3.SpringMVC·_03.SpringMVC常用注解_2 RequestBody注解
  6. 阶段3 2.Spring_03.Spring的 IOC 和 DI_1 ioc的概念和作用
  7. BugBugBugBugBugBugBugBugBugBugBugBugBugBugBug
  8. 使用jekins自动构建部署java maven项目(jdk1.7+tomcat7.0+jenkins2.19.3)
  9. [深入Maven源代码]maven绑定命令行参数到具体插件
  10. 共享一款基于 jQuery 的多功能对话框插件 jBox,强不强大,用了才知道:)