正则表达式学习笔记

A.(?=xx),(?<!xx),(?<=xx)
匹配示例:
str=11125aaeadc1a1c55;
1.str与正则"d.{3}(?=aa)"匹配:先按正则"d.{3}"进行匹配,要求此子串后面以aa开头,但结果并不会包含子串(1125)后面的aa,这就是非捕获组中“非”的意思,匹配的结果中含有1125;
2.str与正则"d.{3}(?!aa)"匹配:先按正则"d.{3}"进行匹配,要求此子串后面不以aa开头,但结果并不会包含子串(1125)后面的aa,匹配的结果中含有1112,5aae,1a1c;
3.str与正则"d.{3}(?<!55)"匹配:先按正则"d.{3}"进行匹配,要求此子串从最后一位往前看,不是以55开头的;匹配的结果中含有1112,5aae,1a1c;
4.str与正则"d.{3}(?<=55)"匹配:先按正则"d.{3}"进行匹配,要求此子串从最后一位往前看,是以55开头的,匹配的结果中含有1c55;

B.(?i)java 等价于 Pattern.compile("JAVA",Pattern.CASE_INSENSITIVE);对忽略待匹配字符串的大小写进行正则匹配;
匹配示例:
str="javaJAVAjAvaJAVaJaVA";
匹配的子串有:java JAVA jAva JAVa JaVA

原文地址:https://www.cnblogs.com/akiradunn/p/5857948.html