標籤:
| NO |
方法名稱 |
類型 |
描述 |
| 1 |
public boolean matches(String regex) |
普通 |
正則驗證使用 |
| 2 |
public String replaceAll(String regex,String replacement) |
普通 |
全部替換 |
| 3 |
public String replaceFirst(String regex,String replacement) |
普通 |
替換首個 |
| 4 |
public String[] split(String regex) |
普通 |
全部拆分 |
| 5 |
public String[] split(String regex,int limit) |
普通 |
部分拆分 |
正則符號(所有的正則匹配符號否在Java.util.regex.Pattern;中提供):
1.表示單個字元(每出現一個表示一位):
- x:表示由x組成;
- \\:表示轉移字元"\"
- \t:表示定位字元,\n表示換行
2.表示字元的選用範圍(每出現一個表示一位):
- [abc]:表示可能是a b c 中的任意一個(注意:只能匹配一個字元);
1 public class demo1 {2 3 public static void main(String[] args) {4 // TODO Auto-generated method stub5 String str="a";6 System.out.println(str.matches("[abc]"));7 }8 9 }View Code
public class demo1 { public static void main(String[] args) { // TODO Auto-generated method stub String str="ab"; System.out.println(str.matches("[abc][abc]")); }}View Code
[^abc]:表示 任何字元,除了 a、b 或 c(否定)
[a-zA-Z]:a 到 z 或 A 到 Z,兩頭的字母包括在內(範圍)
- [0-9]:
3.簡化運算式(每出現一個表示一位):
- .:表示任意一位字元;
- \d:表示任意一位元字,相當於[0--9];
public static void main(String[] args) { // TODO Auto-generated method stub String str="2"; System.out.println(str.matches("\\d")); }}View Code
- \D:表示不是一個數字,相當於[^0--9];
- \s:表示任意一位空格;
public class demo1 { public static void main(String[] args) { // TODO Auto-generated method stub String str="\t"; System.out.println(str.matches("\\s")); }}View Code
- \S:表示不是任意的一位空格;
- \w:表示字母(包括大寫或小寫) 數字 底線中的任意一位;
4.邊界匹配:
- ^:寫在正則之前,表示正則開始;
- $:寫在正則最後,表示正則結束;
5.數字規範:
6.邏輯運算式:
- 正則X正則Y:執行正則X後執行正則Y;
- X|Y:滿足正則X或者正則Y其中一個即可;
- (正則):表示多個正則成為一組;
7.通過String類操作字元:
- 如:只保留字母
1 public class demo1 {2 public static void main(String[] args) {3 // TODO Auto-generated method stub4 String str="afajhj2313535{}]gaj>?‘;f‘afag;lag";5 String regex="[^a-zA-Z]";6 System.out.println(str.replaceAll(regex, ""));7 }8 }View Code
- 替換(利用split()函數)
public class demo1 { public static void main(String[] args) { // TODO Auto-generated method stub String str="a1b22c333d4444e55555f666666g"; String regex="\\d+"; String [] res=str.split(regex); for(int i=0;i<res.length;i++) System.out.println(res[i]); }}View Code
- 使用者名稱有字母 數字 底線表示並且有6~15個字元;
public class demo1 { public static void main(String[] args) { // TODO Auto-generated method stub String str="wangxiang_123*"; String regex="\\w{6,15}"; System.out.println(str.matches(regex)); String regex1="(\\d|[a-zA-Z]|_|\\*){6,15}"; System.out.println(str.matches(regex1)); }}View Code
- 現在某學校的學產生績那照"姓名:年齡:生日:成績"格式,這樣的資料可以出現多次並以|分隔, 如:ALLEN:19:1993-05-02:98.6|JUDY:21:2000-09-02:78|SARA:20:1994-08-21:97.5
- 下面對各個判斷進行拆分:
- 名字:
String str="zhansan";String regex="[a-zA-Z]+";
- 年齡:
String str="19";String regex="\\d{1,3}";
- 生日:
String str="1993-09-02";String regex="\\d{4}-\\d{2}-\\d{2}";
- 成績:
String str="98.98";String regex="\\d{1,3}(\\.\\d{1,2})?";
- 單個學生格式綜合:
String str="ALLEN:19:1993-05-02:98.6";String regex="[a-zA-Z]+:\\d{1,3}:\\d{4}-\\d{2}-\\d{2}:\\d{1,3}(\\.\\d{1,2})?";
- 整個判斷:
public class demo1 { public static void main(String[] args) { // TODO Auto-generated method stub String str="ALLEN:19:1993-05-02:98.6|JUDY:21:2000-09-02:78|SARA:20:1994-08-21:97.5"; String regex="([a-zA-Z]+:\\d{1,3}:\\d{4}-\\d{2}-\\d{2}:\\d{1,3}(\\.\\d{1,2})?\\|?)+"; System.out.println(str.matches(regex)); }}
java學習筆記——Regex