Java 正则表达式常用惯例

简介:

Java 正则表达式常用惯例

1,判断字符串是否是HTML页面

 

Java代码   收藏代码
  1. /*** 
  2.      * 判断是否是HTML 网页 
  3.      * @param input 
  4.      * @return 
  5.      */  
  6.     public static boolean isHTMLWebPage(String input){  
  7.         if(ValueWidget.isNullOrEmpty(input)){  
  8.             return false;  
  9.         }  
  10.         return input.matches(".*<html[\\s\\w'\"=]*>.*");  
  11.     }  

 应用:

Java代码   收藏代码
  1. @Test  
  2.     public void test_isHTMLWebPage(){  
  3.         String input="a<html><head><title>";  
  4.         System.out.println(RegexUtil.isHTMLWebPage(input));  
  5.     }  
  6.   
  7.  ComponentUtil.appendResult(resultTextPane, "返回的状态码:" + respCode, true);  
  8.                 if(!ValueWidget.isNullOrEmpty(responseJsonResult)&&RegexUtil.isHTMLWebPage(responseJsonResult)){  
  9.                     //弹出框显示HTML  
  10.                     CustomDefaultDialog customDefaultDialog=new CustomDefaultDialog(responseJsonResult,"显示HTML",true);  
  11.                     customDefaultDialog.setVisible(true);  
  12.                 }  

 

 

 

2,把换行的段落当做字符串拼接

 

Java代码   收藏代码
  1. /*** 
  2.      * 把换行的段落当做字符串拼接 
  3.      * @param input 
  4.      * @param cr 
  5.      * @param quote 
  6.      * @return 
  7.      */  
  8.     public static String splitPlus(String input,String cr,String quote){  
  9.         String chinese;  
  10. //      String quote="\"";  
  11.         String replacement=quote+" +$1"+quote+"$2";  
  12.         String regex="[\\s]*([^\\s]+.*)";  
  13.         input=input.replace(quote, "\\"+quote);//原字符串转义  
  14.           
  15.         if(cr.equals("\\r\\n")){  
  16.             chinese=input.replaceAll("(\r\n)"+regex, replacement);  
  17.         }else if(cr.equals("\\n")){  
  18.             chinese=input.replaceAll("(\n)"+regex, replacement);  
  19.         }else if(cr.equals("\\r")){  
  20.             chinese=input.replaceAll("(\r)"+regex, replacement);  
  21.         }else{  
  22.             chinese=input.replaceAll("(\n\r)"+regex, replacement);  
  23.         }  
  24.         return quote+chinese+quote+";";  
  25.     }  

 应用:

 



 

 源代码见附件:

下载地址:http://pan.baidu.com/s/1sjy1ceT

参考:java swing 工具箱:http://hw1287789687.iteye.com/blog/2251439

3,java 模拟linux中sed

 

Java代码   收藏代码
  1. /*** 
  2.      * __showLog=True -->__showLog=false 
  3.      * @param source 
  4.      * @param regex : 正则表达式 
  5.      * @param replacement 
  6.      * @return 
  7.      */  
  8.     public static String sed(String source,String regex,String replacement){  
  9.         Pattern p=Pattern.compile(regex,Pattern.MULTILINE);  
  10.         Matcher m=p.matcher(source);  
  11.         String result = m.replaceAll(replacement);  
  12.         return result;  
  13.     }  
  14.     /*** 
  15.      * 模拟linux 的sed 功能 
  16.      * <br>将关闭输出流 
  17.      * @param source 
  18.      * @param regex : 正则表达式 
  19.      * @param replacement 
  20.      * @return 
  21.      */  
  22.     public static String sed(File source,String regex,String replacement){  
  23.         String input=null;  
  24.         try {  
  25.             input = FileUtils.getFullContent2(source, SystemHWUtil.CHARSET_UTF);  
  26.             input=sed(input, regex, replacement);  
  27.             FileUtils.writeStrToFile(source, input, false);  
  28.         } catch (IOException e) {  
  29.             e.printStackTrace();  
  30.         }  
  31.         return input;  
  32.     }  

 应用:

 4,删除每行前面的数字

Java代码   收藏代码
  1. /*** 
  2.      * 删除每行前面的数字 
  3.      * @param input 
  4.      * @return 
  5.      */  
  6.     public static String deleteDigit(String input) {  
  7.         if(ValueWidget.isNullOrEmpty(input)){  
  8.             return null;  
  9.         }  
  10.         Pattern p = Pattern.compile("^[\\d]+[,:]?[\\s]*",Pattern.MULTILINE);  
  11.         Matcher m = p.matcher(input);  
  12.         String result = m.replaceAll(SystemHWUtil.EMPTY);  
  13.         return result;  
  14.     }  

 应用:

Java代码   收藏代码
  1. @Test  
  2.     public void test_deleteDigit(){  
  3.         String input;  
  4.         try {  
  5.             input = FileUtils.getFullContent3(new File("e:\\tmp\\testdigit.txt"), SystemHWUtil.CHARSET_CURR).toString();  
  6.             System.out.println(RegexUtil.deleteDigit(input));  
  7.         } catch (IOException e) {  
  8.             e.printStackTrace();  
  9.         }  
  10.           
  11.           
  12.     }  

 

5,模板sed的参数y

Java代码   收藏代码
  1. /*** 
  2.      *  
  3.      * @param source 
  4.      * @param arrFrom 
  5.      * @param arrTo 
  6.      * @return 
  7.      */  
  8.     public static String sedY(String source,String[] arrFrom,String[] arrTo){  
  9.         if(ValueWidget.isNullOrEmpty(source)){  
  10.             return SystemHWUtil.EMPTY;  
  11.         }  
  12.         int length=arrFrom.length;  
  13.         for(int i=0;i<length;i++){  
  14.             String tmp=arrFrom[i];  
  15.             if(source.equals(tmp)){  
  16.                 return arrTo[i];  
  17.             }  
  18.         }  
  19. //      return SystemHWUtil.EMPTY;  
  20.         throw new RuntimeException("can not find");  
  21.     }  

 应用:

Java代码   收藏代码
  1. @Test  
  2.     public void test_sedY(){  
  3.         String base[]=new String[]{"a","bc","c","d"};  
  4.         String result=RegexUtil.sedY("a", base, new String[]{"1a","2b","3c","4d"});  
  5.         System.out.println(result);  
  6.     }  

 

相关文章
|
6天前
|
Java
探索Java中的Lambda表达式
【9月更文挑战第28天】Lambda表达式,这一Java 8引入的轻量级语法结构,为函数式编程提供了强有力的支持。它简化了代码,提高了开发效率,并使得并行处理数据变得异常容易。本文将通过直观的例子和详细的解释,带领读者深入理解Lambda表达式的奥秘,从而在编程实践中更加灵活地运用它们。
|
8天前
|
Java API
探索Java中的Lambda表达式
【9月更文挑战第27天】Lambda表达式,作为Java 8的一大亮点,为我们的编程世界带来了一股清新之风。它以其简洁明了的语法和强大的功能,让我们在处理集合、线程等复杂操作时如鱼得水。本文将带你一探Lambda表达式的奥秘,让你领略到它的魅力所在。
18 6
|
9天前
|
Java API 开发者
探索Java中的Lambda表达式:简洁与强大的代码实践
本文深入探讨Java中Lambda表达式的定义、用法及优势,通过实例展示其如何简化代码、提升可读性,并强调在使用中需注意的兼容性和效率问题。Lambda作为Java 8的亮点功能,不仅优化了集合操作,还促进了函数式编程范式的应用,为开发者提供了更灵活的编码方式。
|
4天前
|
Java 开发者
探索Java中的Lambda表达式:简化你的代码之旅##
【8月更文挑战第62天】 Java 8的发布为开发者带来了诸多新特性,其中最引人注目的无疑是Lambda表达式。这一特性不仅让代码变得更加简洁,还极大地提升了开发的效率。本文将通过实际示例,展示如何利用Lambda表达式来优化我们的代码结构,同时探讨其背后的工作原理和性能考量。 ##
|
5天前
|
Java API 开发者
探索Java中的Lambda表达式
【9月更文挑战第29天】Lambda表达式,在Java编程中,它不仅仅是一种语法糖,更是简化代码、提升效率的利器。本文将通过浅显易懂的语言和实际代码示例,带你走进Lambda的世界,了解其背后的原理和在日常开发中的应用,让你的代码更简洁、更高效。
|
8天前
|
Java API 开发者
探索Java中的Lambda表达式:简化代码,提升效率
【9月更文挑战第27天】在Java 8中引入的Lambda表达式为编程带来了革命性的变化。通过简洁的语法和强大的功能,它不仅简化了代码编写过程,还显著提升了程序的执行效率。本文将深入探讨Lambda表达式的本质、用法和优势,并结合实例演示其在实际开发中的应用。无论你是Java新手还是资深开发者,都能从中获得启发,优化你的代码设计。
|
10天前
|
Java 测试技术
java正则表达式
java正则表达式
23 7
|
11天前
|
Java 开发者
探索Java中的Lambda表达式
【9月更文挑战第23天】本文将深入探讨Java中的Lambda表达式,从其基本概念、语法结构到实际应用案例,旨在帮助读者更好地理解并掌握这一现代编程特性。我们将通过简洁明了的代码示例,展示Lambda表达式如何简化代码、提高开发效率。无论你是Java新手还是资深开发者,这篇文章都将为你提供有价值的见解和技巧。
|
9天前
|
Java API
Java中的Lambda表达式及其应用
本文将深入探讨Java中的Lambda表达式,通过简洁易懂的语言和示例代码,帮助读者理解Lambda表达式的定义、优势以及在实际开发中的应用。同时,我们将解析一些常见的使用场景,并展示如何利用Lambda表达式简化代码,提高编程效率。
18 2
|
10天前
|
Java 程序员 API
Java 8新特性之Lambda表达式与Stream API的探索
【9月更文挑战第24天】本文将深入浅出地介绍Java 8中的重要新特性——Lambda表达式和Stream API,通过实例解析其语法、用法及背后的设计哲学。我们将一探究竟,看看这些新特性如何让Java代码变得更加简洁、易读且富有表现力,同时提升程序的性能和开发效率。
下一篇
无影云桌面