`

Java正则表达式

阅读更多
public class RegularTest {
	public static void main(String[] args){
		p("str".matches("..."));
		//public String replaceAll(String regex, String replacement)
		//public String replaceFirst(String regex, String replacement)
		p("A00123lB".replaceFirst("\\d","*"));
		p("A00123lB".replaceAll("\\d", "*"));
//		[]表示范围,{}表示长度
//		[0-9]表示在0到9之前的一个数
//		\\d{0,10}表示0到10之间的长度
//		Greedy 数量词
//		X? 		X,一次或一次也没有 
//		X*		X,零次或多次 
//		X+		X,一次或多次 
//		X{n}	X,恰好 n 次 
//		X{n,}	X,至少 n 次 
//		X{n,m} 	X,至少 n 次,但是不超过 m 次
//      "\\" 匹配 反斜线字符(\)
//		"\\".matches("\\\\")  一个\匹配的时候要写四个
//		[abc] a、b 或 c(简单类) 
//		[^abc] 任何字符,除了 a、b 或 c(否定) 
//		[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)(并集[a-z]|[A-Z]) 
//		[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集) 
//		[a-z&&[def]] d、e 或 f(交集) 
//		[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去) 
//		[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去) 
		
//		. 任何字符(与行结束符可能匹配也可能不匹配) 
//		\d 数字:[0-9] 
//		\D 非数字: [^0-9] 
//		\s 空白字符:[ \t\n\x0B\f\r] 
//		\S 非空白字符:[^\s] 
//		\w 单词字符:[a-zA-Z_0-9] 
//		\W 非单词字符:[^\w] 
//		^ 行的开头 
//		$ 行的结尾 
//		\b 单词边界 
//		\B 非单词边界 
//		p(" \n".matches("^[\\s&&[^\\n]]*\\n$"));这个匹配空白字付(开始是空白,但不是换行,结果是换行)
//		p("hello sir".matches("^h.*r$"));
//		"lan ".matches(".*\\z$") 这样的不能单词边界,要用行的结尾\z
		
//		Reluctant 数量词(这个是勉强的,先用最少的去匹配) 
//		X?? X,一次或一次也没有 
//		X*? X,零次或多次 
//		X+? X,一次或多次 
//		X{n}? X,恰好 n 次 
//		X{n,}? X,至少 n 次 
//		X{n,m}? X,至少 n 次,但是不超过 m 次 
		
//		Possessive 数量词 (这个用来追求效率,直接打最多的,不行的话就不行了)
//		X?+ X,一次或一次也没有 
//		X*+ X,零次或多次 
//		X++ X,一次或多次 
//		X{n}+ X,恰好 n 次 
//		X{n,}+ X,至少 n 次 
//		X{n,m}+ X,至少 n 次,但是不超过 m 次 
//		文字替换(首次出现字符)
//		Pattern pattern = Pattern.compile("正则表达式");
//		Matcher matcher = pattern.matcher("正则表达式 Hello World,正则表达式 Hello World");
//		替换第一个符合正则的数据
//		System.out.println(matcher.replaceFirst("Java"));
//
//		文字替换(全部)
//		Pattern pattern = Pattern.compile("正则表达式");
//		Matcher matcher = pattern.matcher("正则表达式 Hello World,正则表达式 Hello World");
//		替换第一个符合正则的数据
//		System.out.println(matcher.replaceAll("Java"));
//		去除html标记
//		Pattern pattern = Pattern.compile("<.+?>", Pattern.DOTALL);
//		Matcher matcher = pattern.matcher("<a href=\"index.html\">主页</a>");
//		String string = matcher.replaceAll("");
//		System.out.println(string);
		
//		截取http://地址
//		截取url
//		Pattern pattern = Pattern.compile("(http://|https://){1}[\\w\\.\\-/:]+");
//		Matcher matcher = pattern.matcher("dsdsds<http://dsds//gfgffdfd>fdf");
//		StringBuffer buffer = new StringBuffer();
//		while(matcher.find()){              
//		    buffer.append(matcher.group());        
//		    buffer.append("\r\n");              
//		System.out.println(buffer.toString());
//		}
//                 匹配中文的Regular [\\u4e00-\\u9fa5]
		
		//电子邮件的匹配
		Pattern email = Pattern.compile("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+");
		Matcher emailMatcher = email.matcher("langhu@qq.com");
		//Matcher是匹配整个字符串
		//find()找子串,start()找到子串开始的位置,end()找到子串结束的位置,
		//但必须能找到子串才能用start,end这两个方法reset()重置		
		p(emailMatcher.matches());
		
		//appendReplacement()和appendTail()方法
		//忽略大小写Pattern.CASE_INSENSITIVE
		String str = "langhua lanHUA LANghua lANGHUa dsfd LANGHUA T";
		Pattern langhuaParttern = Pattern.compile("langhua", Pattern.CASE_INSENSITIVE);
		Matcher langhuaMatcher = langhuaParttern.matcher(str);
		StringBuffer sb = new StringBuffer();
		int i = 0;
		while(langhuaMatcher.find()){
		    i++;
			if(i%2==0){
				langhuaMatcher.appendReplacement(sb,"xiaolanghua");
			}else{
				langhuaMatcher.appendReplacement(sb,"dalanghua");
			}			
		}
		langhuaMatcher.appendTail(sb);
		p(sb.toString());
		//分组group()返回的是子串
		String num = "123aa-1234aa-12384bb-0-*-*";
		Pattern nump = Pattern.compile("(\\d{3,5})(\\w{2})");
		Matcher numm = nump.matcher(num);
		while(numm.find()){
			p(numm.group(1));
		}
		
		Pattern pattern = Pattern.compile(".{1,3}?\\d");
		Matcher marcher = pattern.matcher("2地3基13ab2cef2");
		if(marcher.find()){
			p(marcher.group());
			p(marcher.start()+"-"+marcher.end());
		}
	}
	public static void p(Object o){
		System.out.println(o);
	}
}

分享到:
评论

相关推荐

    java正则表达式.zip

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

    java正则表达式匹配工具

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

    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的正则表达式功能来提取、过滤和操作日志数据。 首先,我们需要理解正则表达式的基本概念。正则表达式(Regular Expression)是一种模式...

    JAVA正则表达式大全

    以下是对这些文档标题所涉及的Java正则表达式知识点的详细解释: 1. **正则表达式之道** 这个主题可能涵盖了正则表达式的基础概念,包括元字符、字符类、量词和分组。元字符如`.`代表任意字符,`^`表示行首,`$`...

    Java正则表达式.ppt

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

    Java 正则表达式库

    Java正则表达式库是Java开发中不可或缺的一部分,它为开发者提供了一种强大的文本匹配工具。在Java中,正则表达式(Regular Expression)是一种模式匹配语言,用于处理字符串操作,如查找、替换或提取特定模式的数据...

    Java正则表达式测试工具

    Java正则表达式测试工具是面向开发者和爱好者的一款实用程序,它可以帮助用户验证和调试他们的正则表达式。在Java编程环境中,正则表达式是一个强大的字符串处理工具,广泛用于数据验证、文本搜索和替换等任务。这款...

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

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

    常用java正则表达式

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

    java正则表达式截取demo下载即可运行

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许我们通过模式匹配来查找、替换或分割文本。这个“java正则表达式截取demo”提供了一个可以直接运行的示例,帮助开发者理解如何在Java中使用正则...

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

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

    java正则表达式使用例子

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

    Java正则表达式应用总结

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

    Java正则表达式详细讲解

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

    强大的JAVA正则表达式处理包jakarta-oro

    Java正则表达式是编程语言中的一个重要组成部分,用于文本处理和模式匹配。Jakarta ORO(Oracle Regular Expressions for Java)是Apache软件基金会开发的一个强大的Java正则表达式库,它为开发者提供了更为灵活和...

    Java 正则表达式 图片版

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

Global site tag (gtag.js) - Google Analytics