标签:
字符类 | |
---|---|
[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] (减去) |
预定义字符类 | |
---|---|
. |
任何字符(与行结束符可能匹配也可能不匹配) |
\d |
数字:[0-9] |
\D |
非数字: [^0-9] |
\s |
空白字符:[ \t\n\x0B\f\r] |
\S |
非空白字符:[^\s] |
\w |
单词字符:[a-zA-Z_0-9] |
\W |
非单词字符:[^\w] |
Greedy 数量词 | |
---|---|
X? |
X,一次或一次也没有 |
X* |
X,零次或多次 |
X+ |
X,一次或多次 |
X{ n} |
X,恰好 n 次 |
X{ n,} |
X,至少 n 次 |
X{ n, m} |
X,至少 n 次,但是不超过 m 次 |
边界匹配器 | |
---|---|
^ |
行的开头 |
$ |
行的结尾 |
\b |
单词边界 |
\B |
非单词边界 |
\A |
输入的开头 |
\G |
上一个匹配的结尾 |
\Z |
输入的结尾,仅用于最后的结束符(如果有的话) |
\z |
输入的结尾 |
1 练习(匹配) 2 /* 3 * 通过正则表达式,实现手机号只能是13xxx 15xxx 18xxx. 4 */ 5 package bolgtest; 6 import java.io.*; 7 public class RegexTest1 { 8 9 public static void main(String[] args)throws Exception { 10 BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in)); 11 String a = buffer.readLine(); 12 String regex = "[1][358]\\d{9}"; 13 System.out.println(a.matches(regex)); 14 buffer.close(); 15 16 17 } 18 19 }
1 练习(替换) 2 /* 3 * 把字符串“ddaghdfjjiifhdhddoooo”中的叠词替换成单个符号 4 */ 5 package bolgtest; 6 7 public class RegexTest2 { 8 9 public static void main(String[] args) { 10 String str = new String("ddaghdfjjiifhdhddoooo"); 11 String regex = "(.)\\1*"; 12 String strcopy = str.replaceAll(regex, "$1"); 13 System.out.println(strcopy); 14 15 } 16 17 }
1 练习(切割) 2 /* 3 * 已知字符串"ddaghdfjjiifhdhddoooo",按叠词切割该字符串 4 */ 5 6 package bolgtest; 7 8 public class RegexTest3 { 9 10 public static void main(String[] args) { 11 String str = new String("ddaghdfjjiifhdhddoooo"); 12 String regex = "(.)\\1+"; 13 String[] strArray = new String[10]; 14 strArray = str.split(regex); 15 for(String s : strArray){ 16 System.out.println(s); 17 } 18 19 20 } 21 22 }
1 练习 2 /* 3 * 字符串"ming tian jiu yao fang jia le "通过正则表达式获取三个字母构成的单词 4 */ 5 6 package bolgtest; 7 8 import java.util.regex.Matcher; 9 import java.util.regex.Pattern; 10 11 public class RegexTest4 { 12 13 public static void main(String[] args) { 14 String str = "ming tian jiu yao fang jia le"; 15 String regex = "\\b[a-z]{3}\\b"; 16 Pattern pattern = Pattern.compile(regex); 17 Matcher mather = pattern.matcher(str); 18 while(mather.find()){ 19 System.out.println(mather.group()); 20 } 21 22 } 23 24 }
标签:
原文地址:http://www.cnblogs.com/yuemingxingxing/p/5078040.html