当前位置:   article > 正文

正则表达式Pattern.DOTALL、(?s)、Pattern.MULTILINE、(?m)、后向引用$1,去除单行注释、去除多行注释、去除空行

pattern.dotall

Pattern.DOTALL模式即Singleline(单行模式)(?s)。表示更改.的含义,使它与每一个字符匹配(包括换行 符\n),默认情况下, 正则表达式中点(.)不会匹配换行符, 设置了Pattern.DOTALL模式, 才会匹配所有字符包括换行符。

Pattern.MULTILINE模式即Multiline(多行模式)(?m)。正则表达式中出现了^或者$, 默认只会匹配第一行. 设置了Pattern.MULTILINE模式,会匹配所有行。表示更改^和$的 含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。

(?i)即匹配时不区分大小写。表示匹配时不区分大小写。

(.+)默认是贪婪匹配,最大匹配

(.+?)为惰性匹配,最小匹配

  1. package test;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;
  4. public class Test5 {
  5. public static void main(String[] args) throws Exception {
  6. String s = "12a干扰\r\n干扰b3";// 想删除ab之间的字符
  7. String replaceAll = s.replaceAll("a.+?b", "");
  8. System.out.println(replaceAll);// 结果:12a干扰\r\n干扰b3
  9. // 上面没有得到正确的结果是因为.不会匹配换行符
  10. String replaceAll2 = s.replaceAll("(?s)a.+?b", "");// 在正则表达式行首加上(?s)成为单行模式
  11. System.out.println(replaceAll2);// 结果:123
  12. // 取ab之间的值方式
  13. Pattern p = Pattern.compile("a.+?b", Pattern.DOTALL);
  14. Matcher m = p.matcher(s);
  15. while (m.find()) {
  16. System.out.println(m.group());// 结果:a干扰\r\n干扰b
  17. }
  18. }
  19. }

后向引用$1

修改"QQ:123456。"中的数字

  1. public static void main(String[] args) {
  2. //修改QQ:123456。中的数字
  3. String s1 = "QQ:123456。";
  4. Pattern p = Pattern.compile("(QQ:)(\\d+)(。)");
  5. Matcher m = p.matcher(s1);
  6. while (m.find()) {
  7. System.out.println(m.group(1));//QQ:
  8. System.out.println(m.group(2));//123456
  9. System.out.println(m.group(3));//
  10. }
  11. s1 = s1.replaceAll("(QQ:)(\\d+)(。)", "$199999$3");
  12. System.out.println(s1);
  13. }

去除单行注释、去除多行注释、去除空行

  1. String line = "12\r\n\r\n\n\n\n3";
  2. line = line.replaceAll("(?s)/\\*.*?\\*/","");//去除多行注释/**/
  3. line = line.replaceAll("(?s)<!--.*?-->","");//去除多行注释<!--注释-->
  4. line = line.replaceAll("(.*?)(//.*)","$1");//去除单行注释//
  5. line = line.replaceAll("\\s*\n","\r\n");//去除空行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/286408
推荐阅读
相关标签
  

闽ICP备14008679号