利器
![](//img-blog.csdn.net/20140116122235390?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcm9iYnlv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
RegularExpressions
![](//img-blog.csdn.net/20140116122512734?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcm9iYnlv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
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("
".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("
".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);
}
}