正則表示式 regexp
阿新 • • 發佈:2019-01-10
正則表示式:是一類字元所書寫出的模式(pattern)
學習正則表達更主要的就是學習對元字元的使用
表示必須用單雙引號概括起來,如果需要使用變數,必須用雙引號括起來,否則可以不加區分的使用單雙引號
基本正則表示式
用於字元匹配:
mysql不分大小寫。java中分大小寫
- .:任意單個字元
- []:指定範圍內的任意單個字元
- java中,mysql中
- [0-9],[[:digit:]]
- [a-z],[[:lower:]]
- [A-Z],[[:upper:]]
- 所有的字母:[[:alpha:]]
- 字母+數字:[[:alnum:]]
- 空格:[[:space:]] mysql中獨有
- 標點符號:[[:putct:]]
- [^]: 指定範圍外的任意單個字元
- *:任意次
- 例=:x*y xxy xy y :y前面出現任意次數的x都可以被匹配到,
package regexp; import java.util.regex.Matcher; import java.util.regex.Pattern; public class test { public static void main(String[] args) { //查詢以Java開頭,任意結尾的字串 Pattern pattern = Pattern.compile("^Java.*"); Matcher matcher = pattern.matcher("Java不是人"); boolean b= matcher.matches(); //當條件滿足時,將返回true,否則返回false System.out.println(b); System.out.println("==========="); //以多條件分割字串時 Pattern pattern1 = Pattern.compile("[, |]+"); String[] strs = pattern1.split("Java Hello World Java,Hello,,World|Sun"); for (int i=0;i<strs.length;i++) { System.out.println(strs[i]); } System.out.println("==========="); //文字替換(首次出現字元) Pattern pattern2 = Pattern.compile("正則表示式"); Matcher matcher2 = pattern2.matcher("正則表示式 Hello World,正則表示式 Hello World"); //替換第一個符合正則的資料 System.out.println(matcher2.replaceFirst("Java")); System.out.println("==========="); //文字替換(出現全部字元) Pattern pattern3 = Pattern.compile("正則表示式"); Matcher matcher3= pattern3.matcher("正則表示式 Hello World,正則表示式 Hello World"); //替換第一個符合正則的資料 System.out.println(matcher3.replaceAll("Java")); //文字替換(置換字元) System.out.println("==========="); Pattern pattern4 = Pattern.compile("正則表示式"); Matcher matcher4 = pattern4.matcher("正則表示式 Hello World,正則表示式 Hello World "); StringBuffer sbr = new StringBuffer(); while (matcher4.find()) { matcher4.appendReplacement(sbr, "Java"); } matcher4.appendTail(sbr); System.out.println(sbr.toString()); //驗證是否為郵箱地址 String str="
[email protected]"; Pattern pattern5 = Pattern.compile("[//w//.//-][email protected]([//w//-]+//.)+[//w//-]+",Pattern.CASE_INSENSITIVE); Matcher matcher5 = pattern.matcher(str); System.out.println(matcher5.matches()); System.out.println("==========="); //簡單的寫法boolean b1 = Pattern.matches("", ""); } }