天天看點

正規表達式 學習筆記2.4

public class GeneralNumSix {

public static void main(String[] args) {

String mixedRegex = "[\\da-f]";

String[] strs = new String[] { "0", "1", "2", "3","4","9","a","e","f","g","z"};

for (String string : strs) {

if(regexMatch(string,mixedRegex)){

System.out.println(string +"能夠比對正則:" + mixedRegex);

}else{

System.out.println(string +"不能夠比對正則:" + mixedRegex);

}

private static boolean regexMatch(String s, String regex) {

return s.matches(regex);

運作結果:

0能夠比對正則:[\da-f]

1能夠比對正則:[\da-f]

2能夠比對正則:[\da-f]

3能夠比對正則:[\da-f]

4能夠比對正則:[\da-f]

9能夠比對正則:[\da-f]

a能夠比對正則:[\da-f]

e能夠比對正則:[\da-f]

f能夠比對正則:[\da-f]

g不能夠比對正則:[\da-f]

z不能夠比對正則:[\da-f]

注意:

能夠比對數字字元,和小寫a-f之間

除此之外,都不能比對。

特殊的簡記法:點号

點号.  是一個特殊的字元組簡記法,它可以比對幾乎所有字元

 \. 比對點号本身

在字元組内部,[.]也隻能比對點号本身

注意:點号不能比對換行符

例子:

public class GeneralNumSeven {

String[] strs = new String[] { "0", "1", "2", "$","{","}",".","[","]","\n"};

String normalDot = ".";

String escapedDot = "\\.";

String characterClassDot = "[.]";

if(regexMatch(string,normalDot)){

System.out.println(string +"能夠比對正則:" + normalDot);

System.out.println(string +"不能夠比對正則:" + normalDot);

if(regexMatch(string,escapedDot)){

System.out.println(string +"能夠比對正則:" + escapedDot);

System.out.println(string +"不能夠比對正則:" + escapedDot);

if(regexMatch(string,characterClassDot)){

System.out.println(string +"能夠比對正則:" + characterClassDot);

System.out.println(string +"不能夠比對正則:" + characterClassDot);

0能夠比對正則:.

1能夠比對正則:.

2能夠比對正則:.

$能夠比對正則:.

{能夠比對正則:.

}能夠比對正則:.

.能夠比對正則:.

[能夠比對正則:.

]能夠比對正則:.

不能夠比對正則:.

0不能夠比對正則:\.

1不能夠比對正則:\.

2不能夠比對正則:\.

$不能夠比對正則:\.

{不能夠比對正則:\.

}不能夠比對正則:\.

.能夠比對正則:\.

[不能夠比對正則:\.

]不能夠比對正則:\.

不能夠比對正則:\.

0不能夠比對正則:[.]

1不能夠比對正則:[.]

2不能夠比對正則:[.]

$不能夠比對正則:[.]

{不能夠比對正則:[.]

}不能夠比對正則:[.]

.能夠比對正則:[.]

[不能夠比對正則:[.]

]不能夠比對正則:[.]

不能夠比對正則:[.]

可見\\.隻能比對點号,字元組内的[.]也隻能比對點号

也就是說點号在字元組内部,或者以轉義形式給出的時候,隻能比對點号本身。

請注意:點号不能比對換行符

小結:

字元組

用來規定某個位置能夠出現的字元

在[...]結構中,方括号内列出的字元

用連字元可以表示範圍

用[^...]表示排除型字元組,列出不容許出現的字元

排除型字元組仍然需要比對一個字元

字元組簡記法,常見的6種簡記

特殊的簡記法:點号,比對除換行符之外的所有字元。

本文轉自jooben 51CTO部落格,原文連結:http://blog.51cto.com/jooben/317156

繼續閱讀