1. 程式人生 > >java成神之——正則表達式基本使用

java成神之——正則表達式基本使用

單詞 href 添加 .com 一個 方法 cas ring 英文

  • 正則表達式
    • 常用匹配規則
    • 基本使用
    • 標記符的使用
    • 部分正則標記
    • 正則表達式在字符串方法中的使用
    • 結語

正則表達式

常用匹配規則

[abc]       abc其中一個

[^abc]      abc之外的一個

[a-z]       a和z之間的一個
        
.           表示任意字符

\d          表示一個數字

\D          非數字

\w          表示a-zA-Z0-9_

\W          非a-zA-Z0-9_

^           開頭

$           結尾

\b          英文單詞邊界

?           一次或者0次

*           零次或者多次

+           一次或者多次

{n}         出現制定n次 

{n,}        至少n次

{n,m}       >=n <=m 次

基本使用

正則結構
    (\d{3})-(\d{3})-(\d{4})
    ^-----^ ^-----^ ^-----^
    組 1      組 2     組 3

Pattern phonePattern = Pattern.compile("(\\d{3})-(\\d{3})-(\\d{4})");
Matcher phoneMatcher = phonePattern.matcher("abcd800-555-1234wxyz");
phoneMatcher.find();        // 查找一次 true
phoneMatcher.group(0);      // 800-555-1234
phoneMatcher.group(1);      // 800

標記符的使用

常用標記符
    DOTALL              表示.可以代表任意字符包括行終止符,簡寫?s
    CASE_INSENSITIVE    表示不區分大小寫,簡寫?i

Pattern pattern = Pattern.compile("foo.", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
或者
Pattern pattern = Pattern.compile("(?si)foo.");

pattern.matcher("FOO\n").matches();  // true

部分正則標記

Pattern pattern = Pattern.compile("^\\[(a)$");
匹配字符串中有部分特殊的需要轉義的字符,除了添加雙反斜線以外,還可以如下操作

Pattern pattern = Pattern.compile("^\\Q[\\E(a)$");
\Q 表示起始,\E 表示結束
或者
Pattern pattern = Pattern.compile(Pattern.quote("[") + "(a)$");

正則表達式在字符串方法中的使用

matches方法:判斷字符串是否滿足正則匹配
    String str = "abc";
    boolean b = str.matches("[a].*"); 

split方法:根據正則匹配的規則分隔字符串
    String str = "abc";
    String[] arr = str.split("[b]");                // [a, c]
        
replaceAll方法:將匹配的字符串替換成其他字符
    String str = "abc";
    String str1 = str.replaceAll("[\\w]", "1");     // 111

結語

本文章是java成神的系列文章之一

如果你想知道,但是本文沒有的,請下方留言

我會第一時間總結出來並發布填充到本文

java成神之——正則表達式基本使用