黑马程序员技术交流社区

标题: 正则表达式的常规应用 [打印本页]

作者: hello_csu    时间: 2015-1-5 20:47
标题: 正则表达式的常规应用
正则表达式有如下几种常规应用:
A,格式匹配,如邮箱信息。
B,隐藏某些特殊的信息
C,删除连续出现的多余字符
D,特别复杂的格式排序
自己对几种比较有针对性的特点总结如下代码:
  1. import java.util.regex.*;
  2. import java.util.*;

  3. public class PatternRecognizition {

  4.         public static void main(String[] args) {
  5.                 // TODO 自动生成的方法存根
  6.                 String name = "192.168.1.254 102.49.23.20 10.10.10.10";
  7.                
  8.                 print(sortIpAddress(name));
  9.         }
  10.    
  11.         public static void checkMailFormat(String str) {
  12.                
  13.                 String regx = "[a-zA-Z0-9_.]{6,}@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+" ;
  14.                 if(str.matches(regx)) {
  15.                         System.out.println("Mail Format is correct.");
  16.                 } else {
  17.                         System.out.println("Mail Format is incorrect.");
  18.                 }
  19.                
  20.         }
  21.        
  22.         public static String  hideMailCount(String str) {
  23.                
  24.                 String regx = "[a-zA-Z0-9_.]{6,}@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+" ;
  25.                 str = str.replaceAll(regx,"##########");
  26.                 return str;
  27.         }
  28.        
  29.         public static String deleteRepeatCharacter(String str) {
  30.                
  31.             String regx = "(.)\\1+";
  32.           
  33.             str = str.replaceAll(regx, "$1");
  34.                
  35.                 return str;
  36.         }
  37.        
  38.         public static String  sortIpAddress(String str) {
  39.                
  40.                 String regx = null;
  41.                 String list[];
  42.                 StringBuilder strbuild = new StringBuilder();
  43.                 //insert 00 in front of the digital.
  44.                 regx = "(\\d+)";
  45.                 str = str.replaceAll(regx,"00$1");

  46.                 regx = "0*(\\d{3})";
  47.                 str = str.replaceAll(regx,"$1");
  48.        
  49.                 list = str.split(" +");
  50.                 Arrays.sort(list);
  51.                 for(String e: list) {
  52.                         strbuild.append(e+" ");
  53.                 }

  54.                 regx = "0*(\\d+)";
  55.                 str = strbuild.toString().replaceAll(regx,"$1");
  56.                 return str;
  57.         }
  58.        
  59.         public static void print(Object e) {
  60.                 System.out.println(e);
  61.         }

  62. }
复制代码




作者: javantiger93000    时间: 2016-11-29 10:31
赞一个!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2