標籤:空白 包含 sys ret system Regex 單詞 表示 ring
- 一、JAVA中的Regex
- 1.概念:以某種特定的方式描述字串
- 1.Java中Regex的規則
- ? #{0,1}-?有一個-或者沒有
- \\ #表示一個”\"
- \\d #表示一個數字
- \\D #非數字
- f\\W+ #表示f開頭的單詞
- \\W #表示一個非單詞字元
- \\w #表示一個單詞字元[0-9A-Za-z-]包含’-’
- \\s #空白符號
- \\S #非空白符號
- (-|\\+)?\\d+ #表示一個數字(正數負數都可以)
- {m,n}數量
- * #{0,}
- + #{1,}
- . #任意的字元 除了“\n”
- Regex中的一個\————\\
- 一個+---\\+
- 一個.————\\.
- System.out.println("193.12.1.0".matches("(\\d{1,3}\\.){3}\\d{1,3}"));——true
- 2.String提供的Regex運算
- 運算一:split(String arg);—return String[];
- split(” “,int max);//限制分離的次數最多時max次
- 按照arg進行split,給定的字元會被刪除
- 運算二: 替換單詞(一個||多)
- replaceFirst(“f\\w+”,“location”);//替換第一個出現的f開頭的單詞
- replaceAll(“f\\w+”|”g\\w+”|”z\\w+”,”location");//替換全部的單詞—String.replace(String)一樣,後者不支援Regex
- eg:
- String string=new String(“Hello String ass");
- string.replaceFirst(“H\\w+|S\\w+”,”abc”);//abc String ass
- string.replaceAll(“H\\w+|S\\w+”,”abc”);//abc abc ass
- 運算三:matches()
- String str=new String();
- if(str.matches(“Y\\w+”)) //
System.out.println("A".matches("[ABC]"));//判斷單詞是不是"ABC"三個字母中的一個"ABC".contains("A")
System.out.println("r".matches("[^ABC]"));//判斷單詞是否不含A、且包含BC
System.out.println("d".matches("[a-zA-Z]"));//判斷是不是字母
System.out.println("a".matches("[ABC[abc]]"));//跟[ABCabc]是一樣的吧
System.out.println("h".matches("[a-z&&[hij]]"));//首先是小寫字母,其次必須是[hij]中的字母
- 量詞
- . 除了\n之外的任一字元 -----不是量詞
- * 表示0-無窮 .*表示0-n個字元
- + 表示1-無窮 .+表示1-n個字元
- 備忘:JAVARegex中需要轉義的符號
- 1.”+”——>”\\+”;
- 2.”.”—— >”\\.”;
- 3.”\\”——>”\\”;
9.JAVA中的Regex