`

Java 正则表达式常用惯例

    博客分类:
  • Java
阅读更多

Java 正则表达式常用惯例

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

 

/***
	 * 判断是否是HTML 网页
	 * @param input
	 * @return
	 */
	public static boolean isHTMLWebPage(String input){
		if(ValueWidget.isNullOrEmpty(input)){
			return false;
		}
		return input.matches(".*<html[\\s\\w'\"=]*>.*");
	}

 应用:

@Test
	public void test_isHTMLWebPage(){
		String input="a<html><head><title>";
		System.out.println(RegexUtil.isHTMLWebPage(input));
	}

 ComponentUtil.appendResult(resultTextPane, "返回的状态码:" + respCode, true);
                if(!ValueWidget.isNullOrEmpty(responseJsonResult)&&RegexUtil.isHTMLWebPage(responseJsonResult)){
                	//弹出框显示HTML
        			CustomDefaultDialog customDefaultDialog=new CustomDefaultDialog(responseJsonResult,"显示HTML",true);
        			customDefaultDialog.setVisible(true);
                }

 

 

 

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

 

/***
	 * 把换行的段落当做字符串拼接
	 * @param input
	 * @param cr
	 * @param quote
	 * @return
	 */
	public static String splitPlus(String input,String cr,String quote){
		String chinese;
//		String quote="\"";
		String replacement=quote+" +$1"+quote+"$2";
		String regex="[\\s]*([^\\s]+.*)";
		input=input.replace(quote, "\\"+quote);//原字符串转义
		
		if(cr.equals("\\r\\n")){
			chinese=input.replaceAll("(\r\n)"+regex, replacement);
		}else if(cr.equals("\\n")){
			chinese=input.replaceAll("(\n)"+regex, replacement);
		}else if(cr.equals("\\r")){
			chinese=input.replaceAll("(\r)"+regex, replacement);
		}else{
			chinese=input.replaceAll("(\n\r)"+regex, replacement);
		}
		return quote+chinese+quote+";";
	}

 应用:

 



 

 源代码见附件:

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

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

3,java 模拟linux中sed

 

/***
	 * __showLog=True -->__showLog=false
	 * @param source
	 * @param regex : 正则表达式
	 * @param replacement
	 * @return
	 */
	public static String sed(String source,String regex,String replacement){
		Pattern p=Pattern.compile(regex,Pattern.MULTILINE);
        Matcher m=p.matcher(source);
        String result = m.replaceAll(replacement);
		return result;
	}
	/***
	 * 模拟linux 的sed 功能
	 * <br>将关闭输出流
	 * @param source
	 * @param regex : 正则表达式
	 * @param replacement
	 * @return
	 */
	public static String sed(File source,String regex,String replacement){
		String input=null;
		try {
			input = FileUtils.getFullContent2(source, SystemHWUtil.CHARSET_UTF);
			input=sed(input, regex, replacement);
			FileUtils.writeStrToFile(source, input, false);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return input;
	}

 应用:

 4,删除每行前面的数字

/***
	 * 删除每行前面的数字
	 * @param input
	 * @return
	 */
	public static String deleteDigit(String input) {
		if(ValueWidget.isNullOrEmpty(input)){
			return null;
		}
		Pattern p = Pattern.compile("^[\\d]+[,:]?[\\s]*",Pattern.MULTILINE);
		Matcher m = p.matcher(input);
		String result = m.replaceAll(SystemHWUtil.EMPTY);
		return result;
	}

 应用:

@Test
	public void test_deleteDigit(){
		String input;
		try {
			input = FileUtils.getFullContent3(new File("e:\\tmp\\testdigit.txt"), SystemHWUtil.CHARSET_CURR).toString();
			System.out.println(RegexUtil.deleteDigit(input));
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		
	}

 

5,模板sed的参数y

/***
	 * 
	 * @param source
	 * @param arrFrom
	 * @param arrTo
	 * @return
	 */
	public static String sedY(String source,String[] arrFrom,String[] arrTo){
		if(ValueWidget.isNullOrEmpty(source)){
			return SystemHWUtil.EMPTY;
		}
		int length=arrFrom.length;
		for(int i=0;i<length;i++){
			String tmp=arrFrom[i];
			if(source.equals(tmp)){
				return arrTo[i];
			}
		}
//		return SystemHWUtil.EMPTY;
		throw new RuntimeException("can not find");
	}

 应用:

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

 6,获取请求头中的 cookie

/***
     *  regex 中必须包含小括号
     * @param source
     * @param regex
     * @return
     */
    public static String sed(String source, String regex) {
        Pattern p = Pattern.compile(regex, Pattern.MULTILINE);
        Matcher m = p.matcher(source);
        if (m.find()) {
            return m.group(1);
        }
        return null;
    }

String cookieLine = RegexUtil.sed(requestHeaderAndServletPath, "(Cookie:[^:]+)");

 

7,篡改请求头中的 Host

    /***
     * 篡改请求头中的Host
     * @param string
     * @param domain
     * @return
     */
    public static String replaceHost(String string, String domain) {
        string = string.replaceAll("(Host:[\\s]*)[a-zA-Z\\.-]+", "$1" + domain);//blog.yhskyc.com
        string = string.replaceAll("(Host:[\\s]*)[\\d\\.]+:[\\d]+", "$1" + domain);//127.0.0.1:8080
        return string;
    }

 

注意:[.]+ 不能匹配任意字符,应该是.+

 

  • 大小: 42 KB
  • 大小: 66.9 KB
  • 大小: 44.6 KB
0
0
分享到:

相关推荐

    java正则表达式.zip

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...

    Java使用正则表达式提取XML节点内容的方法示例

    为了帮助开发者更好地掌握Java正则表达式技术,我们提供了一系列的Java正则表达式技巧大全,包括《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧...

    Java正则表达式 Java 正则表达式

    Java正则表达式是Java语言中用于处理字符串的强大工具,它允许程序员进行复杂的字符串匹配、查找和替换操作。正则表达式(Regular Expression)是一种模式匹配语言,通过特定的语法来描述字符串的模式,用于在文本中...

    java正则表达式匹配工具

    Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...

    JAVA正则表达式大全

    在Java编程语言中,正则表达式被广泛应用于数据验证、文本提取和字符串操作。以下是对这些文档标题所涉及的Java正则表达式知识点的详细解释: 1. **正则表达式之道** 这个主题可能涵盖了正则表达式的基础概念,...

    使用Java正则表达式分析处理日志

    本篇将围绕“使用Java正则表达式分析处理日志”这一主题,探讨如何利用Java的正则表达式功能来提取、过滤和操作日志数据。 首先,我们需要理解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式...

    常用java正则表达式

    ### 常用Java正则表达式知识点 #### 一、引言 正则表达式是一种强大的工具,用于处理文本并查找模式。多种编程语言,包括Perl、PHP、Python、JavaScript以及Java等均内置了对正则表达式的支持。本文将详细介绍Java...

    Java正则表达式.ppt

    Java正则表达式是一种强大的文本处理工具,广泛用于验证字符串、查找特定模式和替换文本。在Java中,正则表达式提供了简洁而灵活的方式来处理字符串,使得编程人员能够以更高效的方式实现各种文本操作。 正则表达式...

    java正则表达式验证IP地址

    Java正则表达式验证IP地址 Java正则表达式验证IP地址是指使用Java语言中的正则表达式来验证IP地址是否符合标准。IP地址是指在网络通信中用来标识设备的地址,它是一种逻辑地址,通过它可以找到网络中的设备。在...

    java 正则表达式应用jar包 regex-smart.jar

    Java正则表达式是编程语言Java中的一个强大工具,它用于模式匹配、数据验证和文本检索替换。在Java中,正则表达式是通过java.util.regex包提供的接口和类来实现的。`regex-smart.jar`这个库显然是为了简化开发者在...

    Java 正则表达式 图片版

    Java正则表达式 Java 正则表达式 图片版 携带方便,查阅方便!~

    Java正则表达式_动力节点Java学院整理

    以下是一些常用的Java正则表达式语法: 1. `.`:匹配任何字符。 2. `*`:匹配零个或多个字符。 3. `+`:匹配一个或多个字符。 4. `?`:匹配零个或一个字符。 5. `{n}`:匹配前一个字符的n次出现。 6. `{n,}`:匹配...

    使用Java正则表达式实现一个简单的身份证号码验证

    ### 使用Java正则表达式实现一个简单的身份证号码验证 #### 一、背景介绍 身份证号码是中国公民的身份标识,由15位或18位数字组成(早期为15位,后改为18位)。其中,第18位是校验码,可能是数字0~9或者大写字母X。...

    Java正则表达式应用总结

    Java正则表达式是编程语言Java中用于处理字符串和文本的强大工具。它允许开发者通过模式匹配来执行复杂的文本分析和操作。在Java中,正则表达式的操作主要涉及两个核心类:`java.util.regex.Matcher`和`java.util....

    java正则表达式使用例子

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或分割文本。在Android开发中,正则表达式尤其重要,因为它们可以帮助我们验证用户输入、处理文本数据或者进行复杂的...

    Java正则表达式详细讲解

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。在Java中,正则表达式是通过`java.util.regex`包提供的API来实现的。本讲解将深入探讨Java正则表达式的...

    常用正则表达式HTML,JAVA合集

    在这个“常用正则表达式HTML,JAVA合集”中,我们主要关注的是HTML和Java环境下的正则表达式应用。 1. **HTML中的正则表达式**: 在HTML中,正则表达式通常用于表单验证,例如输入字段(如邮箱、电话号码、手机号码...

    java正则表达式验证

    java使用正则表达式进行校验验证,主要使用了Pattern和Matcher类,直接main方法运行就可以,亲测有效

    Java正则表达式介绍和练习

    Java正则表达式介绍和练习Java正则表达式介绍和练习Java正则表达式介绍和练习

Global site tag (gtag.js) - Google Analytics