JAVA与正则表达式_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > JAVA与正则表达式

JAVA与正则表达式

 2012/3/1 9:34:57  greatwqs  程序员俱乐部  我要评论(0)
  • 摘要:importjava.util.regex.Matcher;importjava.util.regex.Pattern;/****JAVA正则表达式测试*@authorgreatwqs**/publicclassRegexExpressionTest{publicstaticvoidmain(String[]args)
  • 标签: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
  • 查看图片附件
发表评论
用户名: 匿名