Greedy Reluctant Possessive区别

前端之家收集整理的这篇文章主要介绍了Greedy Reluctant Possessive区别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. <span style="font-size:14px;">package cn.itcast.test;
  2.  
  3. import java.util.regex.Matcher;
  4. import java.util.regex.Pattern;
  5.  
  6. //Greedy Reluctant Possessive区别
  7. public class Demo3 {
  8. public static void main(String[] args) {
  9. /* //Greedy (.{3,10})[0-9] -->一般使用这个
  10. //先把s吞取10个字符再说,与模式串进行匹配,匹配失败,把最后一个吐出来,吐出来的正好是数字,正好匹配,所以输出0-10
  11. Pattern p = Pattern.compile("(.{3,10})[0-9]");
  12. String s = "aaaa3bbbb6";
  13. Matcher m = p.matcher(s);
  14. if(m.find()){
  15. p(m.start()+ "-" + m.end());
  16. }else{
  17. p("not match");
  18. }*/
  19. /*//Reluctant (.{3,10}?)[0-9]
  20. //这个与Greedy正好相反 吞最少的 正好结果为0-5
  21. Pattern p = Pattern.compile("(.{3,10}?)[0-9]");
  22. String s = "aaaa3bbbb6";
  23. Matcher m = p.matcher(s);
  24. if(m.find()){
  25. p(m.start()+ "-" + m.end());
  26. }else{
  27. p("not match");
  28. }*/
  29. // Possessive 与Greedy 不同的是,它不吐字符,这个匹配不上
  30. Pattern p = Pattern.compile("(.{3,10}+)[0-9]");
  31. String s = "aaaa3bbbb6";
  32. Matcher m = p.matcher(s);
  33. if(m.find()){
  34. p(m.start()+ "-" + m.end());
  35. }else{
  36. p("not match");
  37. }
  38. }
  39.  
  40. private static void p(Object o) {
  41. System.out.println(o);
  42. }
  43. }
  44. </span>

猜你在找的正则表达式相关文章