元字符是在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]相同。
|
\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()); } }
上面的代碼生成以下結果。
以下代碼 \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)); } } }
上面的代碼生成以下結果。
更多建議: