import java.util.regex.Matcher; import java.util.regex.Pattern; /** ? 一次或一次也没有 * 零次或多次 + 一次或多次 {n} 恰好n次 {n,}至少 n 次 {n,m} 至少 n 次,但是不超过 m 次 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-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](减去) ^ 行的开头 $ 行的结尾 \b 单词边界 . 任何字符(与行结束符可能匹配也可能不匹配) \d 数字:[0-9] \D 非数字: [^0-9] \s 空白字符:[ \t\n\x0B\f\r] \S 非空白字符:[^\s] \w 单词字符:[a-zA-Z_0-9] \W 非单词字符:[^\w] \\ 反斜线字符 */ public class Regex { public static void main(String[] args){ p("a".matches("."));//1个字符 p("aa".matches("aa")); p("aaaa".matches("a*"));//0次或多次 p("aaaa".matches("a+"));//1次或多次 p("".matches("a*"));//0次或多次 p("aa".matches("a?"));//1次或0次 p("".matches("a?")); p("a".matches("a?")); p("1231231211212".matches("\\d{3,100}")); p("192.168.0.2".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}")); p("392".matches("[0-2][0-9][0-9]")); p("a".matches("[abc]")); p("z".matches("[^abc]")); p("A".matches("[a-zA-Z]")); p("A".matches("[a-z]|[A-Z]")); p("A".matches("[a-z[A-Z]]")); p("12".matches("[0-9&&[1]]")); p(" \n\r\t".matches("\\s{4}")); p(" ".matches("\\s")); p("a_8".matches("\\w{3}")); p("abc88&^%".matches("[a-z]{1,3}\\d+[%^&^]+")); p("\\".matches("\\\\")); //0359-1234567 021-12345678 p("0359-1234567".matches("^\\d{4}-\\d{7}$|^\\d{3}-\\d{8}$")); p("021-12345678".matches("\\d{4}-\\d{7}|\\d{3}-\\d{8}")); p("hello sir".matches("^h.*")); p("hello sir".matches(".*ir$")); p("hello sir".matches("^h[a-z]{1,3}o\\s[a-z]+$")); p("hellosir".matches("^h[a-z]{1,3}o\\b.*")); 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}.")); //abc@163.com p("abc@163.com".matches("^.+@.+\\..+$")); p("abc@163.com".matches("\\w[.-]+@\\w[.-]+\\.[\\w]+")); Pattern p = Pattern.compile("java",Pattern.CASE_INSENSITIVE); Matcher m = p.matcher("java Java JAVA javA Ilove JAVa you hate JavA ddddadf"); 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); //分组 Pattern p1 = Pattern.compile("(\\d{3,5})([a-z]{2})"); String s = "321aa-11111bb-123cc-00"; Matcher m1 = p1.matcher(s); while(m1.find()){ // p(m.group()); p(m1.group(1)); // p(m.group(2)); } } public static void p(Object s) { System.out.println(s); } }
相关推荐
6正则表达式笔记[借鉴].pdf
正则表达式的基本语法,主要用于javascript开发时看正则表达式方便点
python正则表达式笔记
Java正则表达式学习笔记,比较基础,适合初学者
Python正则表达式笔记
js正则表达式笔记,可以运行,正则 笔记
Java正则表达式笔记.pdf
php正则表达式笔记,本人手写的 //----正则匹配----- $p = '/example/' $str = "I am an example"; preg_match($p,$str); //如果$str中含有$p两个/中间的内容(内容不要求完全相同,要求为包含于关系),则返回真 //...
关于正则表达式的定义,常用方法。看后使你更快了解如何使用正则表达式
正则表达式 txt文档 详细的总结正则表达式!
[小小明]Python正则表达式全套笔记v0.3(1.8万字干货)
正则表达式基础学习笔记!!!从基础开始正则表达式基础学习笔记!!!
正则表达式笔记(re.search/re.match/re.split/re.compile/用法) - douzujun - 博客园博客园首页新随笔联系订阅管
7个常用正则表达式要点,可以解决绝大部分问题
正则表达式学习笔记正则表达式学习笔记正则表达式学习笔记正则表达式学习笔记正则表达式学习笔记正则表达式学习笔记