Java正则表达式的介绍
正则表达式定义了字符串的模式,它可以用来搜索、编辑或处理文本,平时多用于匹配和查找相应的字符串
正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别,正如我另一篇文章所介绍的MySQL数据库的正则
https://www.cnblogs.com/bc-song/p/14446839.html
因为语法上相差不大,所以这里就不介绍正则表达式的过多语法了,附图一张仅供参考,主要谈一下Java如何运用正则表达式
文章阅读和实践大概需要十分钟左右,本文涉及的知识点不是难点,希望不会浪费你宝贵的时间
正文
实例
正则 |
分析 |
this is text |
匹配字符串 "this is text" |
this\s+is\s+text |
注意字符串中的 \s+,匹配单词 "this" 后面的 \s+ 可以匹配多个空格,之后匹配 is 字符串,再之后 \s+ 匹配多个空格然后再跟上 text 字符串。可以匹配this is text |
^\d+(.\d+)? |
^ 定义了以什么开始,\d+ 匹配一个或多个数字,? 设置括号内的选项是可选的,. 匹配 ".",可以匹配的实例:"5", "1.5" 和 "2.21"。 |
Java使用正则的引用包和实现类
java.util.regex 包主要包括以下三个类:
* Pattern 类:
pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。
要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。
该方法接受一个正则表达式作为它的第一个参数。
* Matcher 类:
Matcher 对象是对输入字符串进行解释和匹配操作的引擎。
与Pattern 类一样,Matcher 也没有公共构造方法。
你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
* PatternSyntaxException:
PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。
正则表达式语法
![正则](https://note.youdao.com/yws/api/personal/file/F1288453C9934E2AA74DA27203D605F2?method=download&shareKey=def25f564ad7ebdb4bcfa60150841ddd)
类方法介绍
Matcher类的方法
public int start(): 返回以前匹配的初始索引。
public int end(): 返回最后匹配字符之后的偏移量。
public boolean lookingAt(): 尝试将从区域开头开始的输入序列与该模式匹配。
public boolean find(): 尝试查找与该模式匹配的输入序列的下一个子序列。
public boolean matches(): 尝试将整个区域与模式匹配。
public String replaceAll(String replacement): 替换模式与给定替换字符串相匹配的输入序列的每个子序列。
public String replaceFirst(String replacement): 替换模式与给定替换字符串匹配的输入序列的第一个子序列。
find、lookingAt和matches的区别
matcher.matches()是全匹配,只有整个匹配串完全匹配才返回true,如果前部分匹配成功,会继续匹配剩下的位置。
matcher.find()是部分匹配,找到一个匹配字串后,将移动下次匹配直到匹配串尾部
matcher.lookingAt()是部分匹配,从第一个字符进行匹配,匹配成功了不再继续匹配,匹配失败了,也不继续匹配