更新時間:2021-08-12 12:24:25 來源:動力節點 瀏覽4928次
在regex 中,我們可以使用句點"."字符匹配任何字符。為了只匹配一組給定的字符,我們應該使用字符類。
'.'字符將匹配任何字符,而不管它是什么字符。匹配的字符可以是字母,數字的任何特殊字符。
默認情況下,句點/點字符僅匹配單個字符。為了創建更有意義的模式,我們可以將它與其他正則表達式結構結合起來。
圖案 | 描述 |
---|---|
“。” | 僅匹配單個字符。 |
“AB” | 匹配以 'A' 開頭并以 'B' 結尾的 3 個字符長字符串中位于第二位的任何字符。 |
“.*” | 匹配任意數量的字符。 |
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args)
{
System.out.println(Pattern.compile(".").matcher("a").matches()); //true
System.out.println(Pattern.compile(".").matcher("ab").matches()); //false
System.out.println(Pattern.compile("A.B").matcher("AIB").matches()); //true
System.out.println(Pattern.compile("A.B").matcher("ABI").matches()); //false
System.out.println(Pattern.compile(".*").matcher("AIB").matches()); //true
}
}
程序輸出。
true
false
true
false
true
如果我們想在任何地方匹配一組字符,我們需要使用字符類。例如,'[abc]' 將匹配單個字符,它可以是 'a'、'b' 或 'c'。
圖案 | 描述 |
---|---|
“[ABC]” | 僅匹配給定字符集中的單個字符。 |
“[aA]” | 匹配字符“a”,不區分大小寫。 |
import java.util.regex.Pattern;
public class Main
{
public static void main(String[] args)
{
System.out.println(Pattern.compile("[abc]").matcher("a").matches()); //true
System.out.println(Pattern.compile("[abc]").matcher("ab").matches()); //false
System.out.println(Pattern.compile("[abc]").matcher("d").matches()); //false
System.out.println(Pattern.compile("[aA]").matcher("a").matches()); //true
System.out.println(Pattern.compile("[aA]").matcher("A").matches()); //true
System.out.println(Pattern.compile("[aA]").matcher("b").matches()); //false
}
}
程序輸出。
true
false
false
true
true
false
如果我們想在任何地方匹配一個范圍的字符,我們需要使用在范圍之間有一個連字符的字符類。例如,'[af]' 將匹配單個字符,它可以是 'a'、'b'、'c'、'd'、'e' 或 'f'。
圖案 | 描述 |
---|---|
“[af]” | 僅匹配從 'a' 到 'f' 范圍內的單個字符。 |
“[az]” | 僅匹配從 'a' 到 'z' 范圍內的單個小寫字符。 |
“[AZ]” | 僅匹配從 'A' 到 'Z' 范圍內的單個大寫字符。 |
“[a-zA-Z]” | 僅匹配從 'a' 到 'z' 范圍內的單個字符,不區分大小寫。 |
“[0-9]” | 僅匹配范圍從“0”到“9”的單個數字。 |
import java.util.regex.Pattern;
public class Main
{
public static void main(String[] args)
{
System.out.println(Pattern.compile("[a-f]").matcher("b").matches()); //true
System.out.println(Pattern.compile("[a-f]").matcher("g").matches()); //false
System.out.println(Pattern.compile("[a-zA-Z]").matcher("a").matches()); //true
System.out.println(Pattern.compile("[a-zA-Z]").matcher("B").matches()); //true
System.out.println(Pattern.compile("[a-zA-Z]").matcher("4").matches()); //false
System.out.println(Pattern.compile("[0-9]").matcher("9").matches()); //true
System.out.println(Pattern.compile("[0-9]").matcher("91").matches()); //false
}
}
程序輸出。
true
false
true
true
false
true
true
以上就是動力節點小編介紹的"正則表達式任意字符的匹配",希望對大家有幫助,想了解更多可查看Java在線學習。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習