您的位置:首页 > 编程语言 > Java开发

[Java] 正则表达式 01 (基本都概览)

2014-01-16 12:27 441 查看
利器

RegularExpressions

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {

public static void main(String[] args) {
// 简单认识正则表达式的概念
/*
* p("abc".matches("...")); p("a8729a".replaceAll("\\d", "-")); Pattern
* p = Pattern.compile("[a-z]{3}"); Matcher m = p.matcher("fgh"); //
* 有限状态自动机 p(m.matches()); p("fgha".matches("[a-z]{3}"));
*/

// 初步认识. * + ?
/*
* p("a".matches(".")); p("aa".matches("aa")); p("aaaa".matches("a*"));
* p("aaaa".matches("a+")); p("".matches("a*"));
* p("aaaa".matches("a?")); p("".matches("a?")); p("a".matches("a?"));
* p("214523145234532".matches("\\d{3,100}"));
* p("192.168.0.aaa".matches(
* "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"));
* p("192".matches("[0-2][0-9][0-9]"));
*/

// 范围
/*
* p("a".matches("[abc]")); p("a".matches("[^abc]"));
* p("A".matches("[a-zA-Z]")); p("A".matches("[a-z]|[A-Z]"));
* p("A".matches("[a-z[A-Z]]")); p("R".matches("[A-Z&&[RFG]]"));
*/

// 认识\s \w \d \
/*
* p(" \n\r\t".matches("\\s{4}")); p(" ".matches("\\S"));
* p("a_8".matches("\\w{3}"));
* p("abc888&^%".matches("[a-z]{1,3}\\d+[&^#%]+"));
* p("\\".matches("\\\\"));
*/

// POSIX Style
// p("a".matches("\\p{Lower}"));

// boundary
/*
* p("hello sir".matches("^h.*")); p("hello sir".matches(".*ir$"));
* p("hello sir".matches("^h[a-z]{1,3}o\\b.*"));
* p("hellosir".matches("^h[a-z]{1,3}o\\b.*")); //whilte lines
* p(" \n".matches("^[\\s&&[^\\n]]*\\n$")); // 开头是空白字符但不是换行符
*
* p("aaa 8888c".matches(".*\\d{4}."));
* p("aaa 8888c".matches(".*\\b\\d{4}."));
* p("aaa8888c".matches(".*\\d{4}."));
* p("aaa8888c".matches(".*\\b\\d{4}."));
*/

// email
// p("asdfasdfsafsf@dsdfsdf.com".matches("[\\w[.-]]+@[\\w[.-]]+\\.[\\w]+"));

// matches find lookingAt
/*
* Pattern p = Pattern.compile("\\d{3,5}"); String s =
* "123-34345-234-00"; Matcher m = p.matcher(s); p(m.matches());
* m.reset(); p(m.find()); p(m.start() + "-" + m.end()); p(m.find());
* p(m.start() + "-" + m.end()); p(m.find()); p(m.start() + "-" +
* m.end()); p(m.find()); //p(m.start() + "-" + m.end());
* p(m.lookingAt()); p(m.lookingAt()); p(m.lookingAt());
* p(m.lookingAt());
*/

// 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); p(buf);
*/

// 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()) {
* p(m.group()); }
*/

// qulifiers
/*
* Pattern p = Pattern.compile(".{3,10}+[0-9]"); String s =
* "aaaa5bbbb68"; Matcher m = p.matcher(s); if(m.find()) p(m.start() +
* "-" + m.end()); else p("not match!");
*/

// non-capturing groups
/*
* Pattern p = Pattern.compile(".{3}(?=a)"); String s = "444a66b";
* Matcher m = p.matcher(s); while(m.find()) { p(m.group()); }
*/

// back refenrences
/*
* Pattern p = Pattern.compile("(\\d(\\d))\\2"); String s = "122";
* Matcher m = p.matcher(s); p(m.matches());
*/

// flags的简写
// Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
p("Java".matches("(?i)(java)"));
}

public static void p(Object o) {
System.out.println(o);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: