Java 正則表達式元字符

2023-02-09 15:14 更新

Java正則表達式教程 - Java正則表達式元字符


元字符是在Java正則表達式中具有特殊含義的字符。

Java中的正則表達式支持的元字符如下:

( ) [ ] { } \ ^ $ | ? * + . < > - = !

字符類

元字符 [] 指定正則表達式中的字符類。

字符類是一組字符。正則表達式引擎將嘗試匹配集合中的一個字符。

字符類“[ABC]"將匹配字符A,B或C.例如,字符串“woman"或“women"將匹配正則表達式“wom [ae] n"。

我們可以使用字符類指定一個字符范圍。

范圍使用連字符 - 字符表示。

例如, [A-Z] 表示任何大寫英文字母;“[0-9]"表示0和9之間的任何數字。

^ 表示不是。

例如, [^ ABC] 表示除A,B和C以外的任何字符。

字符類 [^ A-Z] 表示除大寫字母之外的任何字符。

如果 ^ 出現在字符類中,除了開頭,它只匹配一個 ^ 字符。

例如,“[ABC ^]"將匹配A,B,C或^。

您還可以在一個字符類中包含兩個或多個范圍。例如, [a-zA-Z] 匹配任何字符a到z和A到Z.

[a-zA-Z0-9] 匹配任何字符a到z(大寫和小寫)和任何數字0到9。

下表列出了字符類的示例

字符a到z
字符類 含義
[abc] 字符a,b或c
[^xyz] 除x,y和z以外的字符
[a-z]  
[a-cx-z] 字符a到c或x到z,其將包括a,b,c,x,y或z。
[0-9&&[4-8]] 兩個范圍(4,5,6,7或8)的交叉,
[a-z&&[^aeiou]] 所有小寫字母減元音
   
   

預定義字符類

下表列出了一些常用的預定義字符類。

預定義
字符
  含義
. 任何字符
\d 數字。 與[0-9]相同
\D 非數字。 與[^ 0-9]相同
\s 空格字符。 包括與[\\ t \\ n \\ x0B \\ f \\ r]相同。
  • 空格
  • 標簽
  • 換行符
  • 垂直標簽
  • 表單Feed
  • 回車字符
\S 非空白字符。 與[^ \\ s]相同
\w 一個字符。 與[a-zA-Z_0-9]相同。
\W 非字字符。 與[^ \ w]相同。

例子

以下代碼使用 \d 匹配所有數字。

\\d 在字符串中用于轉義 \

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {  
  public static void main(String args[]) {    
    Pattern p = Pattern.compile("Java \\d");    
    String candidate = "Java 4";    
    Matcher m = p.matcher(candidate);    

    if (m != null)      
       System.out.println(m.find());  
 }
}

上面的代碼生成以下結果。

例2

以下代碼 \w+ 匹配任何單詞。

雙斜杠用于轉義 \

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {  
  public static void main(String args[]) {    
    String regex = "\\w+";    
    Pattern pattern = Pattern.compile(regex);    

    String candidate = "asdf Java2s.com";    
    Matcher matcher = pattern.matcher(candidate);    
    if (matcher.find()) {      
     System.out.println("GROUP 0:" + matcher.group(0));    
    }  
 }
}

上面的代碼生成以下結果。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號