RE工具常用语法
一.基本语法
1.普通字符
2.转义字符
3.标准字符集(大写表示取反)
\d:0~9任意数字
\w:字母数字下划线
\s:空格、制表、换行符
.:任意换行符外的字符
[\s\S]:包含换行符的任意字符
4.自定义字符集
[]:方括号内任意单一字符
[^]:^在方括号内表示取反
[a-b]:表示a-b之间字符
除以上两符号外(可用\转义)被包含到中括号中则失去特殊含义
标准字符集,除.外都表示其标准字符集合
5.量词
{n}:表示前面表达式重复n次
{m,n}:最少重复m次,最多n次
贪婪模式:优先匹配n
非贪婪模式:优先匹配m(在后面加?)
{m,}:至少重复m次
?:相当于{0,1}
+:相当于{1,}
*:相当于{0,}
6.字符边界
零宽:匹配的是某种条件的位置而非字符
^:与字符串开始的地方匹配
比如:^a表示a处在字符串开始处匹配
$:与字符串结尾的地方匹配
\b:匹配一个单词边界
前面的字符和后面的字符不全是\w
7.选择符和分组
|:或
():捕获组,存入内存
(?:expression):非捕获组,不存入内存
\n:反向引用,对前面的捕获组进行引用(数字表示捕获组编号)
((ab)(cd)):引用顺序依照最左括号
8.预搜索(零宽断言)
(?=expression):以expression结尾的
(?!expression):不以expression结尾的
(?<=expression):以expression开头的
(?<!expression):不以expression开头的
二.JAVA匹配
1.查找
1 | Pattern p = Pattern.compile("模式串");//一个\要变为两个\ |
2.替换
1 | String str = m.replaceAll("替换串");//将模式串替换为替换串 |
3.分割
1 | String[] arrs = str.split("正则模式串");//表示按照模式串进行分割 |