正则表达式-java

前端之家收集整理的这篇文章主要介绍了正则表达式-java前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. package regexUtilTest;
  2. import java.util.TreeSet;
  3. import java.util.regex.Matcher;
  4. import java.util.regex.Pattern;
  5.  
  6. public class RegexString {
  7. //1 匹配
  8. public boolean Matches(String src,String regex){
  9. boolean flag=false;
  10. if(src.matches(regex))
  11. flag=true;
  12. else
  13. flag=false;
  14. return flag;
  15. }
  16. //切割
  17. public String [] Split(String src,String reg){
  18. String a[] = src.split(reg);
  19. for (String string : a) {
  20. System.out.println(string);
  21. }
  22. return a;
  23. }
  24. //替换
  25. public String Replace(String src,String regex,String newstr){
  26. String newstring = src.replaceAll(regex,newstr);
  27. System.out.println(newstring);
  28. return newstring;
  29. }
  30.  
  31. //获取
  32. public void Get(String src,String regex){
  33. Pattern p = Pattern.compile(regex);
  34. Matcher m = p.matcher(src);
  35. while(m.find()){
  36. System.out.println(m.group());
  37. System.out.println(m.start()+":"+m.end());
  38. }
  39. }
  40. public static void main(String[] args) {
  41. RegexString regexString = new RegexString();
  42. String qq= "^[1-9]\\d{5,14}$";
  43. String phone = "^(\\+86 )?1[358]\\d{9}$";
  44. String str="wangtianyieeexiaolieeeezhaotianyugggglkjkj";
  45. String regex="(.)\\1+";
  46. String src = "13533828340";
  47. regexString.Replace(str,regex,"#");
  48. regexString.Replace(str,"$1");
  49. //需求 将手机号码中间几位数屏蔽
  50. regexString.Replace("15802397891","(\\d{3})(\\d{4})(\\d{4})","$1****$3");
  51. //regexString.Split(str,regex);
  52. //需求:取出3个字母的单词
  53. String src1="cheng xu yuan,yi sheng hei";
  54. String regex1="\\b[a-zA-Z]{3}\\b";
  55. regexString.Get(src1,regex1);
  56. //需求 替换叠词
  57. String question1 ="aaa....ccccc.........dddd.......eeeee....ccccc........ggggg.....eeewwwww.....";
  58. //首先替换掉.
  59. String q1=regexString.Replace(question1,"\\.+","" );
  60. //然后替换掉重复字符
  61. regexString.Replace(q1,"(.)\\1+","$1");
  62. //需求:匹配ip分租 并 按照ip 排序
  63. String ip = "172.168.5.34 22.22.245.123 33.22.33.1 2.43.56.113 224.22.3.53 ";
  64. //考虑到要排序可以用TreeSet排序 但是22.22.245.123 如果用treeset排序 就会比172.....1开头的打大 所以需要把所有ip转换成3位数
  65. //因为ip每个.间的位数不同 将每个数字前加上两个0 则ip至少是3位以上
  66. String ip1 = ip.replaceAll("(\\d+)","00$1");
  67. //然后将多位的ip替换成3位
  68. ip1 = ip1.replaceAll("0*(\\d{3})","$1");
  69. System.out.println(ip1);
  70. //排序
  71. String ips[]=regexString.Split(ip1," +");
  72. TreeSet<String> ts =new TreeSet<String>();
  73. for (String string : ips) {
  74. ts.add(string);
  75. }
  76. //输出
  77. System.out.println("---------------");
  78. for (String string : ts) {
  79. string=string.replaceAll("0*(\\d{1,3})","$1");
  80. System.out.println(string);
  81. }
  82. //匹配邮箱 注意下划线
  83. String mail = "eico@sin-omcn.com";
  84. String regexMail="(w{3}\\.)?[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_]+)+";
  85. String regexMail2="\\w+@\\w+\\-\\w+(\\.\\w+)+";
  86. System.out.println(mail.matches(regexMail));
  87. System.out.println(mail.matches(regexMail2));
  88.  
  89. String http = "^'http://\\w+(\\.\\w+)+(/[a-zA-Z0-9_-]+)*(\\.\\w+)*'$";
  90. String httpsrc="\"http://www.bilibili.com/html/ma_pc.html\"";
  91. System.out.println(httpsrc);
  92. System.out.println(httpsrc.matches(http));
  93. //需求:将a3ab2de5将数字之间的字符重复数字那么多次
  94. String qunaer = "a3ab2de5";
  95. String relexq="([a-z]+\\d)";
  96. //1在每个组之间添加一个#号便于分租
  97. String qunaer2=qunaer.replaceAll(relexq,"$1#");
  98. //2把它分成多个组
  99. String[] b=qunaer2.split("#");
  100. //3new一个可变长度的builder对象
  101. StringBuilder finalbuilder=new StringBuilder();
  102. for (String string : b) {
  103. Pattern p = Pattern.compile("\\d");
  104. Matcher m = p.matcher(string);
  105. int copy=0;
  106. while(m.find()){
  107. copy = Integer.parseInt(m.group());
  108. System.out.println(copy);
  109. }
  110. String newstr=string.replaceAll("([a-z]+)\\d","$1");
  111. StringBuilder builder =new StringBuilder(newstr);
  112. for (int j = 0; j < copy-1; j++) {
  113. builder.append(newstr);
  114. }
  115. finalbuilder = finalbuilder.append(builder);
  116. }
  117. System.out.println(finalbuilder);
  118. }
  119. }

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