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.     }  

 

相关文章
|
1月前
|
监控 Java Python
Java 中的正则表达式
正则表达式是Java中强大的文本处理工具,支持灵活的匹配、搜索、替换和验证功能。本文介绍了正则表达式的语法基础及其在Java中的应用,包括字符串匹配、替换、分割及实际场景中的邮箱验证和电话号码提取等示例。通过这些技术,可以显著提高文本处理的效率和准确性。
177 8
|
1月前
|
Java API 开发者
Java中的Lambda表达式与Stream API的协同作用
在本文中,我们将探讨Java 8引入的Lambda表达式和Stream API如何改变我们处理集合和数组的方式。Lambda表达式提供了一种简洁的方法来表达代码块,而Stream API则允许我们对数据流进行高级操作,如过滤、映射和归约。通过结合使用这两种技术,我们可以以声明式的方式编写更简洁、更易于理解和维护的代码。本文将介绍Lambda表达式和Stream API的基本概念,并通过示例展示它们在实际项目中的应用。
|
2月前
|
Java API 开发者
Java中的Lambda表达式:简洁代码的利器####
本文探讨了Java中Lambda表达式的概念、用途及其在简化代码和提高开发效率方面的显著作用。通过具体实例,展示了Lambda表达式如何在Java 8及更高版本中替代传统的匿名内部类,使代码更加简洁易读。文章还简要介绍了Lambda表达式的语法和常见用法,帮助开发者更好地理解和应用这一强大的工具。 ####
|
2月前
|
并行计算 Java 编译器
深入理解Java中的Lambda表达式
在Java 8中引入的Lambda表达式,不仅简化了代码编写,还提升了代码可读性。本文将带你探索Lambda表达式背后的逻辑与原理,通过实例展示如何高效利用这一特性优化你的程序。
|
2月前
|
搜索推荐 Java API
探索Java中的Lambda表达式
本文将深入探讨Java 8引入的Lambda表达式,这一特性极大地简化了代码编写,提高了程序的可读性。通过实例分析,我们将了解Lambda表达式的基本概念、使用场景以及如何优雅地重构传统代码。文章不仅适合初学者,也能帮助有经验的开发者加深对Lambda表达式的理解。
|
2月前
|
Java
探索Java中的Lambda表达式
【10月更文挑战第37天】本文将带你深入理解Java的Lambda表达式,从基础语法到高级特性,通过实例讲解其在函数式编程中的应用。我们还将探讨Lambda表达式如何简化代码、提高开发效率,并讨论其在实际项目中的应用。
|
2月前
|
Java API
Java中的Lambda表达式与函数式编程####
【10月更文挑战第29天】 本文将深入探讨Java中Lambda表达式的实现及其在函数式编程中的应用。通过对比传统方法,我们将揭示Lambda如何简化代码、提高可读性和维护性。文章还将展示一些实际案例,帮助读者更好地理解和应用Lambda表达式。 ####
|
2月前
|
JSON 自然语言处理 Java
这款轻量级 Java 表达式引擎,真不错!
AviatorScript 是一个高性能、轻量级的脚本语言,基于 JVM(包括 Android 平台)。它支持数字、字符串、正则表达式、布尔值等基本类型,以及所有 Java 运算符。主要特性包括函数式编程、大整数和高精度运算、完整的脚本语法、丰富的内置函数和自定义函数支持。适用于规则判断、公式计算、动态脚本控制等场景。
|
2月前
|
Java API 开发者
Java中的Lambda表达式与函数式编程####
在Java的演变过程中,Lambda表达式和函数式编程的引入无疑是一次重大的飞跃。本文将深入探讨Lambda表达式的定义、用法及优势,并结合实例说明如何在Java中利用Lambda表达式进行函数式编程。通过对比传统编程方式,揭示Lambda表达式如何简化代码、提高开发效率和可维护性。 ####
|
3月前
|
自然语言处理 安全 Java
Aviator Java 表达式引擎
AviatorScript 是一门高性能、轻量级寄宿于 JVM 之上的脚本语言。
84 10

热门文章

最新文章