`

JAVA与正则表达式

    博客分类:
  • Java
阅读更多
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/***
 * JAVA正则表达式测试
 * @author greatwqs
 *
 */
public class RegexExpressionTest {

	public static void main(String[] args) {
		
		//简单认识正则表达式的概念
		// =============================================================================
		println("abc".matches("..."));
		println("a8729a".replaceAll("\\d", "-"));
		Pattern p = Pattern.compile("[a-z]{3}");
		Matcher m = p.matcher("fgh");
		println(m.matches());
		println("fgha".matches("[a-z]{4}"));  // matches是匹配整个字符串,在这里为"fgha"
		
		
		//初步认识. * + ?==============================================================
		// X*  X出现0次以上(包括0次)
		// X+  X出现1次以上(包括1次)
//		println("a".matches("."));
//		println("aa".matches("aa"));
//		println("aaaa".matches("a*"));
//		println("aaaa".matches("a+"));
		
//		println("".matches("a*"));
		// x? -- 0个或者一个x
//		println("aaaa".matches("a?"));
//		println("".matches("a?"));
//		println("a".matches("a?"));
		// x{3,100}  x出现3-100次
//		println("214523145234532".matches("\\d{3,100}"));
//		println("192.168.0.aaa".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
//		println("192".matches("[0-2][0-9][0-9]"));
		
		// =============================================================================
		//范围  ^在[]之间表示非,在最外面表示一行的开头
//		println("a".matches("[abc]"));  
//		println("a".matches("[^abc]")); 
//		println("A".matches("[a-zA-Z]"));
//		println("A".matches("[a-z]|[A-Z]"));
//		println("A".matches("[a-z[A-Z]]"));  // 相当于println("A".matches("[a-z]|[A-Z]"));
//		println("R".matches("[A-Z&&[RFG]]"));
		
		// =============================================================================
		//认识\s \w \d \
//		println(" \n\r\t".matches("\\s{4}")); //true
//		println(" ".matches("\\S")); //false
//		println("a_8".matches("\\w{3}")); //true
//		println("abc888&^%".matches("[a-z]{1,3}\\d+[&^#%]+"));  // true \\d+  表示数字出现1次以上
//		println("\\".matches("\\\\")); //true  
		//"\\"为一个反斜线(JAVA语法); 在正则表达式中"\\"代表一个反斜线字符, 
		// 而这个在JAVA中\需要转义,所以正则表达式在JAVA中表示一个反斜线需要4个\,即"\\\\"
		
		// =============================================================================
		//POSIX Style 为Unix的一套标准
//		println("a".matches("\\p{Lower}"));
		/*\p{Lower} 小写字母字符:[a-z] 
	    \p{Upper} 大写字母字符:[A-Z] 
	    \p{ASCII} 所有 ASCII:[\x00-\x7F] 
        \p{Alpha} 字母字符:[\p{Lower}\p{Upper}] 
        \p{Digit} 十进制数字:[0-9] 
        \p{Alnum} 字母数字字符:[\p{Alpha}\p{Digit}] 
        \p{Punct} 标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 
        \p{Graph} 可见字符:[\p{Alnum}\p{Punct}] 
        \p{Print} 可打印字符:[\p{Graph}\x20] 
        \p{Blank} 空格或制表符:[ \t] 
        \p{Cntrl} 控制字符:[\x00-\x1F\x7F] 
        \p{XDigit} 十六进制数字:[0-9a-fA-F] 
        \p{Space} 空白字符:[ \t\n\x0B\f\r] */

		
		
		// =============================================================================
		//boundary  边界匹配开头(^)和结尾($)
		// "^"在开头则表示一行的开始,EG: "^h.*";   "^"在[]里面表示非,EG: "[^1-9]" 
//		println("hello sir".matches("^h.*"));  // true
//		println("hello sir".matches(".*ir$"));  // true
//		println("hello sir".matches("^h[a-z]{1,3}o\\b.*")); // true 正则"\b"表示单词边界 
//		println("hellosir".matches("^h[a-z]{1,3}o\\b.*"));  // false
		
		// =============================================================================
		//whilte lines 空白行
//		println(" \n".matches("^[\\s&&[^\\n]]*\\n$"));
//				
//		println("aaa 8888c".matches(".*\\d{4}."));
//		println("aaa 8888c".matches(".*\\b\\d{4}."));
//		println("aaa8888c".matches(".*\\d{4}."));
//		println("aaa8888c".matches(".*\\b\\d{4}."));   // false
		
		// =============================================================================
		// 匹配Email地址
//		println("greatwqs@163.com".matches("[\\w]+@[\\w]+\\.[\\w]+"));  // "\\w"表示单词字符:[a-zA-Z_0-9] 
		//email
//		println("asdfasdfsafsf@dsdfsdf.com".matches("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+"));  
		// true  [.-] ".","-"取其一
		
		// =============================================================================
		//matches find lookingAt
//		Pattern p = Pattern.compile("\\d{3,5}");
//		String s = "123-34345-234-00";
//		//          01234567890123456789
//		Matcher m = p.matcher(s);
//		// println(m.matches());
//		// m.reset();                       // 进行重置, 相当于没有调用println(m.matches());
//		println(m.find());                        // find找匹配的子串返回
//		println(m.start() + "-" + m.end());
//		println(s.substring(m.start(),m.end()));  // 上面find匹配的子串
//		println(m.find());
//		println(m.start() + "-" + m.end());
//		println(m.find());
//		println(m.start() + "-" + m.end());
//		println(m.find());
//		// println(m.start() + "-" + m.end());    
//		// 前面的println(m.find());为false, 所以表示没有子串匹配, 所以就不能打出下标
//		println(m.lookingAt());                   
//		// 从匹配的字符串的起始位置匹配相当于m.reset();再m.find();
//		println(m.lookingAt());
//		println(m.lookingAt());
//		println(m.lookingAt());
		
		// =============================================================================
		//replacement 字符串的替换
//		Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
//		Matcher m = p.matcher("java Java JAVa JaVa I love JAVA you hate Javaf");
//		println(m.replaceAll("JAVA"));
		
		// =============================================================================
		//group
//		Pattern p = Pattern.compile("(\\d{3,5})([a-z]{2})");
//		String s = "123aa-34345bb-234cc-00";
//		Matcher m = p.matcher(s);
//		while(m.find()) {
//			println(m.grouprintln());                 // 打印子串
//			println(m.start() + "-" + m.end()); // 打印下标
//			println("");
//		}
		
		// =============================================================================
		//flags的简写
//		println("Java".matches("(?i)(java)"));
		
		// =============================================================================
		//replacement 字符串的替换, 偶数转化为小写,基数转化大写算法
//		Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
//		Matcher m = p.matcher("java Java JAVa JaVa IloveJAVA you hateJava afasdfasdf");
//		StringBuffer buf = new StringBuffer();
//		int i=0;
//		while(m.find()) {
//			i++;
//			if(i%2 == 0) {
//				m.appendReplacement(buf, "java");
//			} else {
//				m.appendReplacement(buf, "JAVA");
//			}
//		}
//		m.appendTail(buf);
//		println(buf);
		
	}
	
	public static void println(Object o) {
		System.out.println(o);
	}

}

  • 描述: 韦德桌面壁纸
  • 大小: 171.6 KB
1
0
分享到:
评论

相关推荐

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

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

    java使用正则表达式判断手机号的方法示例

    8. java正则表达式技巧大全:文章最后还提供了几个有关于java算法相关的内容,例如《Java正则表达式技巧大全》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java...

    java正则表达式.zip

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

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

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

    Java根据正则表达式生成字符串—Xeger,automaton

    在Java编程语言中,处理字符串和正则表达式是一项常见的任务。正则表达式是一种强大的文本模式匹配工具,可以用于搜索、替换或者提取符合特定规则的字符串。在本篇文章中,我们将深入探讨如何利用Java中的Xeger和...

    java正则表达式匹配工具

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

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

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

    Java 使用正则表达式对象实现正则的获取功能

    Java 正则表达式对象实现正则获取功能 在 Java 中,使用正则表达式对象可以实现各种字符串匹配和提取操作。正则表达式对象主要通过 Pattern 和 Matcher 两个类来实现。下面详细介绍如何使用正则表达式对象实现正则...

    java通过正则表达式匹配获取MAC(支持windows和Linux)

    java通过正则表达式匹配获取MAC(支持windows和Linux)

    JAVA正则表达式大全

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

    java_zhengze.rar_正则表达式_正则表达式 java

    本资料"java_zhengze.rar"提供了对Java正则表达式的详细讲解,包括基本概念、元字符、预定义字符类以及各种匹配操作,对于Java开发者来说是一份非常实用的学习资源。 首先,我们来了解一下正则表达式的基石——元...

    Java正则表达式.ppt

    Java正则表达式虽然与其他语言的正则表达式有相似之处,但它们并不完全相同,有自己的语法和特性。使用Java正则表达式的好处在于它能显著提高编程效率,例如验证电子邮件地址这样的任务,传统方法可能需要大量的代码...

    常用java正则表达式

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

    java正则表达式验证IP地址

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

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

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

    java Xeger 根据正则表达式生成满足的随机数据

    Xeger的工作原理是通过解析正则表达式,然后生成与之匹配的随机字符串。例如,如果你有一个正则表达式"^[a-zA-Z0-9]{5,10}$",它表示一个由5到10个字母或数字组成的字符串。Xeger会根据这个规则生成长度在5到10之间...

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

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

    PB实现的正则表达式

    在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它能够进行复杂的模式匹配、查找、替换等操作。在本话题中,我们将探讨如何使用PowerBuilder 11.5这一经典的开发环境来实现正则...

Global site tag (gtag.js) - Google Analytics