`

Java 正则表达式的简单应用.

阅读更多
package pack.java.thread.atm;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Expression {
	//* + ? {n} {n,m}的意思:
	//*代表0次到多次;
	//+代表1次到多次;
	//?代表0次到1次;
	//{n}代表出现n次;
	//{n,m}代表出现 n 到 m 次;
	
	//\d代表0-9;
	//\D代表非0-9;
	//\s代表空格;
	//\S代表非空格;
	//\w代表A-Z0-9;
	//\W代表非A-Z0-9;
	
	/**
	 * 匹配字符串;
	 */
	private void testMethod1(){
		Pattern pattern = Pattern.compile("Java.*",Pattern.CASE_INSENSITIVE);
		Matcher matcher = pattern.matcher("JAVA 编程语言!");
		boolean bool = matcher.matches();
		if(bool){
			System.out.println("匹配成功!");
		}else{
			System.out.println("匹配失败!");
		}
	}
	
	/***
	 * 分割字符串;
	 */
	private void testMethod2(){
		String regx = "[,|]";
		String input = "Hello Java Word Java,Hello ,,My,Name,Is|Java|Sun,.";
		Pattern pattern = Pattern.compile(regx);
		String[] strs = pattern.split(input);
		for(int i = 0;i<strs.length;i++){
			//如果不是空白的时候,则输出.
			if(!"".equals(strs[i])){
				System.out.println(strs[i]);
			}
		}
	}
	
	/**
	 * 替换;
	 */
	private void testMethod3(){
		String regex = "正则表达式";
		Pattern pattern = Pattern.compile(regex);
		String input = "正则表达式 Hello Word! 正则表达式 Hello Word!";
		Matcher matcher = pattern.matcher(input);
		//替换第一个出现的位置;
		String result = matcher.replaceFirst("Java");
		
		//替换所有;
		//String result = matcher.replaceAll("Java");
		System.out.println(result);
	}
	
	/**
	 * 根据查找,然后进行替换;
	 */
	private void testMethod4(){
		Pattern pattern = Pattern.compile("正则表达式");
		Matcher matcher = pattern.matcher("正则表达式 Hello World,正则表达式 Hello World");
		StringBuffer sb = new StringBuffer();
		while (matcher.find()) {
			matcher.appendReplacement(sb, "Java");
		}
		matcher.appendTail(sb);
		System.out.println(sb.toString());
	}
	
	/**
	 * 验证邮箱;
	 */
	private void testMethod5(){
		String regex = "[\\w\\.\\-]+@[\\w\\-]+[\\.]+[\\w]+";
		String email = "363667565@qq.com";
		//Pattern.CASE_INSENSITIVE 忽略大小写;
		Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
		Matcher matcher = pattern.matcher(email);
		if(matcher.matches()){
			System.out.println("是正确的邮箱!");
		}else{
			System.out.println("不是正确的邮箱!");
		}
	}
	
	/**
	 * 去除html标记;
	 */
	private void testMethod6(){
		Pattern pattern = Pattern.compile("<.+?>", Pattern.DOTALL);
		Matcher matcher = pattern.matcher("<font size='5' color = 'red'>样式</font>");
		//替换成空白;
		String result = matcher.replaceAll("");
		System.out.println(result);
	}
	
	/**
	 * 查找html中对应的字符;
	 */
	private void testMethod7(){
		String regex = "href=\"(.+?)\"";
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher("<a href=\"index.html\">主页</a>");
		if(matcher.find()){
			System.out.println(matcher.group(1));
		}
	}
	
	/**
	 * 截取https或者http url;
	 */
	private void testMethod8(){
		String regex = "(http://|https://){1}[\\w\\.\\-/:]+";
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher("http://www.baidu.com -> http://www.csdn.net");
		StringBuffer buffer = new StringBuffer();
		while (matcher.find()) {
			buffer.append(matcher.group());
			buffer.append("\r\n");
		}
		System.out.println(buffer.toString());
	}
	
	/**
	 * 替换{0},{1},{2},{3}中的字符;
	 * 
	 */
	private void testMethod9(){
		String msg = "我喜欢的游戏有:{1},{2},{3},{4},{5}这几种.!";
		String[] msgArray = new String[]{"泡泡堂","弹弹堂","Acrlive","卡卡跑订车","西游记"};
		StringBuffer sb =new StringBuffer();
		sb.append("我喜欢的游戏有:");
		for(int i = 1;i<=msgArray.length;i++){
			String regex ="\\{"+i+"\\}";
			Pattern pattern =Pattern.compile(regex);
			Matcher matcher= pattern.matcher(msg);
			if(matcher.find()){
				sb.append(msgArray[i-1]+",");
			}
		}
		sb.append("这几种.!");
		System.out.println(sb.toString());
		
		
		String str = "Java目前的发展史是由{0}年-{1}年"; 
		String[][] object={new String[]{"\\{0\\}","1995"},new String[]{"\\{1\\}","2007"}}; 
		System.out.println(replace(str,object)); 
		
	}
	
	public static String replace(final String sourceString,Object[] object)
		{ 
		String temp=sourceString; 
		for(int i=0;i<object.length;i++){ 
			String[] result=(String[])object[i];
			Pattern pattern = Pattern.compile(result[0]);
			Matcher matcher = pattern.matcher(temp);
			temp=matcher.replaceAll(result[1]); 
		}
		return temp; 
	};
	
	
	public static void main(String[] args) {
		Expression expression = new Expression();
		expression.testMethod1();
		expression.testMethod2();
		expression.testMethod3();
		expression.testMethod4();
		expression.testMethod5();
		expression.testMethod6();
		expression.testMethod7();
		expression.testMethod8();
		expression.testMethod9();
	}
}

 

分享到:
评论

相关推荐

    JAVA正则表达式实例教程.pdf

    ### JAVA正则表达式实例教程知识点详述 #### 一、正则表达式的定义与特点 **1.1 正则表达式是什么?** - 正则表达式(Regular Expression)是一种模式匹配语言,用于文本搜索和替换。它提供了一种简洁而灵活的方式...

    java正则表达式.pdf

    ### Java正则表达式详解 #### 一、引言 正则表达式是计算机科学中的一个强大工具,用于处理文本数据。随着Java的发展,自J2SE 1.4版本开始,Java正式引入了对正则表达式的支持,并提供了一系列功能强大的API。本文...

    Java正则表达式简单应用

    这篇博客将带你了解Java正则表达式的简单应用,并结合两个示例文件`parse_redbend_log`和`eyesaver`进行讲解。 在Java中,正则表达式通常通过`java.util.regex`包中的类来使用,如`Pattern`和`Matcher`。`Pattern`...

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

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

    Java 正则表达式库

    总之,Java正则表达式库为开发者提供了强大的文本处理能力,无论是简单的文本查找还是复杂的模式匹配,都能通过正则表达式轻松完成。配合自动化库,如`automaton-1.11-7`,可以进一步提升效率和性能。对于Java开发者...

    正则表达式库gnu.regexp-1.1.4

    正则表达式库GNU.regexp-1.1.4是一个用于处理文本模式匹配的开源库,主要用于Java编程语言。这个库提供了对标准正则表达式语法的支持,使得开发者能够高效地进行字符串查找、替换和分割等操作。在本文中,我们将深入...

    java正则表达式教程html版带目录

    Java正则表达式是Java编程语言中的一个强大工具,它用于模式匹配和字符串处理,尤其在数据验证、文本检索和替换等方面发挥着重要作用。本教程是专为初学者设计的HTML版,旨在帮助读者快速掌握Java正则表达式的概念和...

    Java正则表达式详解.pdf

    下面是一个简单的Java正则表达式示例: ```java package lxh.demo.regex.exercise; import java.util.regex.Pattern; public class Replacement { public static void main(String[] args) { // 编译正则表达式...

    JAVA正则表达式语法.txt

    根据给定文件的信息,我们可以...综上所述,JAVA正则表达式提供了丰富的功能和灵活性,能够满足从简单的文本匹配到复杂的数据解析的各种需求。理解并熟练掌握这些语法元素,对于高效地处理字符串和文本数据至关重要。

    只验证数字和字母的正则表达式

    ### 正则表达式的应用与理解 在计算机编程与数据处理领域中,正则表达式是一种非常强大的文本匹配工具。本文将围绕一个特定的正则表达式 `/^([A-Za-z0-9])+$/` 展开讨论,该表达式主要用于验证输入字符串是否仅包含...

    JAVA 正则表达式(超详细)

    5. 使用 Java 正则表达式:使用 Java 正则表达式进行字符串模式匹配和字符串模式替换非常简单。Java 的 regex 包提供了详细的相关说明文档,使得正则表达式的使用变得更加容易。 6. 优点:Java 正则表达式具有许多...

    java正则表达式 过滤特殊字符的正则表达式

    本文详细介绍了 Java 正则表达式在过滤特殊字符方面的应用,并对正则表达式的基本概念和高级概念进行了详细的解释。同时,还提供了一个简单的示例代码,展示了如何使用正则表达式来过滤特殊字符。

    易语言模拟正则表达式匹配源码.7z

    本压缩包“易语言模拟正则表达式匹配源码.7z”提供了易语言实现的正则表达式匹配的源代码,对于学习易语言以及正则表达式的应用有着宝贵的参考价值。 正则表达式(Regular Expression)是处理字符串的强大工具,...

    精通正则表达式~~~

    正则表达式的应用原理... 241 应用之前的优化措施... 242 通过传动装置进行优化... 246 优化正则表达式本身... 247 提高表达式速度的诀窍... 252 常识性优化... 254 将文字文本独立出来... 255 将锚点独立...

    java 正则表达式大全 菜鸟也能玩转

    ### Java正则表达式大全:菜鸟也能玩转 在Java编程语言中,正则表达式是一种强大的工具,用于处理字符串的搜索、替换等操作。它能够帮助开发者更加灵活地进行文本处理工作。本文将深入介绍Java中的正则表达式基础...

    正则表达式 Java 判断字串是否合理

    根据给定的文件信息,我们可以总结出以下关于Java正则表达式的重要知识点: ### 1. 正则表达式简介 正则表达式是一种强大的文本处理工具,它能够帮助我们匹配、查找、替换等操作符合某种规则的字符串。在Java中,...

    Java正则表达式详解.doc

    ### Java正则表达式详解 #### 一、正则表达式基础知识 正则表达式是一种强大的文本处理工具,被广泛应用于各种编程语言中,用于文本的查找与替换、验证等场景。Java作为一种主流的编程语言,同样支持正则表达式的...

    正则表达式系统教程.rar

    8. **实际应用**:结合实例讲解如何在编程语言(如Python、JavaScript、Java等)中使用正则表达式进行文本处理。 9. **常见问题与解决方案**:解答在使用正则表达式时可能遇到的问题,并提供解决策略。 通过学习这...

Global site tag (gtag.js) - Google Analytics