JAVA正则表达式
参考 Java 正则表达式 | 菜鸟教程 (runoob.com)
1.正则表达式是什么
正则表达式(Regular Expression)是一种文本模式,包括普通字符和特殊字符。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。
2.正则表达式有什么用
(1) 测试字符串内的模式。
(2) 替换文本。
(3) 基于模式匹配从字符串中提取子字符串。
3.JAVA正则表达式基础
java.util.regex 包主要包括以下三个类:
Pattern 类 Matcher 类 PatternSyntaxException
import java.util.regex.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String pattern = "^abc";
boolean isMatch = Pattern.matches(pattern, content);
//调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象
当解释为正则表达式时,字符串字面值 "\b" 与单个退格字符匹配,而 "\b" 与单词边界匹配。字符串字面值 "(hello)" 是非法的,将导致编译时错误;要与字符串 (hello) 匹配,必须使用字符串字面值 "\(hello\)"。
限定符
(?) 前面的字符可有可无 //如果要前面多个字符就用()括起
(*)前面的字符出现次数在0到无穷
(+)前面的字符出现次数在1到无穷
{数字} 前面字符出现数字次
{数字,} 前面字符至少出现数字次
{数字1,数字2} 前面的字符出现数字1到数字2次
或运算符
(abc|def)可以匹配abc或者def
字符类
[abc]+ 可以匹配由abc组成的字符串
[a-z]+ 可以匹配由a到z组成的字符串
[^a-z]+ 可以匹配除a-z的字符串
元字符
\d 数字字符digit [0-9] \D 非数字字符\\大写同理
\w 单词字符word 任意字母、数字、下划线[A-Za-z0-9_]
\s 空白符Tab和换行
. 任意字符不包括换行符
^匹配行首 $匹配行尾
贪婪与懒惰匹配
正常匹配会匹配尽可能多的字符
加个?会使贪婪匹配转换为懒惰匹配
例如<.+>变成<.+?>从匹配最远一个>到最近一个
Matcher 类的方法
索引方法
public int start() //返回以前匹配的初始索引。
public int start(int group) //返回在以前的匹配操作期间,由给定组所捕获的子序列的初始索引
public int end() //返回最后匹配字符之后的偏移量。
public int end(int group) //返回在以前的匹配操作期间,由给定组所捕获子序列的最后字符之后的偏移量。
查找方法
public boolean lookingAt() //尝试将从区域开头开始的输入序列与该模式匹配。
public boolean find() //尝试查找与该模式匹配的输入序列的下一个子序列。
public boolean find(int start) // 重置此匹配器,然后尝试查找匹配该模式、从指定索引开始的输入序列的下一个子序列。
public boolean matches() //尝试将整个区域与模式匹配。
替换方法
public Matcher appendReplacement(StringBuffer sb, String replacement) //实现非终端添加和替换步骤。
public StringBuffer appendTail(StringBuffer sb) //实现终端添加和替换步骤。
public String replaceAll(String replacement) //替换模式与给定替换字符串相匹配的输入序列的每个子序列。
public String replaceFirst(String replacement) //替换模式与给定替换字符串匹配的输入序列的第一个子序列。
public static String quoteReplacement(String s) //返回指定字符串的字面替换字符串。这个方法返回一个字符串,就像传递给Matcher类的appendReplacement 方法一个字面字符串一样工作。
标签:字符,匹配,String,正则表达式,字符串,JAVA,public
From: https://www.cnblogs.com/dry-myrica/p/17248507.html