天天看點

正規表達式 學習筆記2.2

排除型字元組:

作用:規定某個位置不容許出現的字元

形式:以[^...]給出,在方括号内列出不容許出現的字元

排除型字元組仍然必須比對一個字元,不能比對空字元

public class GeneralNumThree {

public static void main(String[] args) {

String[] hexDigits = new String[] { "0", "1", "2", "3","4","5","6","7","8","9",

 "a", "b", "c", "d","e","f"};

String negativeDigitRegex = "[^0-5]";

String negativeDigitRegex2 = "[^0-5e-f]";

for (String hexDigit : hexDigits) {

if(regexMatch(hexDigit,negativeDigitRegex)){

System.out.println("16進制數值:" + hexDigit +"能夠比對正則1:" + negativeDigitRegex);

}else{

System.out.println("16進制數值:" + hexDigit +"不能夠能夠比對正則1:" + negativeDigitRegex);

}

if(regexMatch(hexDigit,negativeDigitRegex2)){

System.out.println("16進制數值:" + hexDigit +"能夠比對正則2:" + negativeDigitRegex2);

System.out.println("16進制數值:" + hexDigit +"不能夠能夠比對正則2:" + negativeDigitRegex2);

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

return s.matches(regex);

第一個排除0-5之間數字,第二個排除0-5和e-f之間。

運作結果:

0不能夠比對正則1:[^0-5]

1不能夠比對正則1:[^0-5]

2不能夠比對正則1:[^0-5]

3不能夠比對正則1:[^0-5]

4不能夠比對正則1:[^0-5]

5不能夠比對正則1:[^0-5]

6能夠比對正則1:[^0-5]

7能夠比對正則1:[^0-5]

8能夠比對正則1:[^0-5]

9能夠比對正則1:[^0-5]

a能夠比對正則1:[^0-5]

b能夠比對正則1:[^0-5]

c能夠比對正則1:[^0-5]

d能夠比對正則1:[^0-5]

e能夠比對正則1:[^0-5]

f能夠比對正則1:[^0-5]

0不能夠比對正則2:[^0-5e-f]

1不能夠比對正則2:[^0-5e-f]

2不能夠比對正則2:[^0-5e-f]

3不能夠比對正則2:[^0-5e-f]

4不能夠比對正則2:[^0-5e-f]

5不能夠比對正則2:[^0-5e-f]

6能夠比對正則2:[^0-5e-f]

7能夠比對正則2:[^0-5e-f]

8能夠比對正則2:[^0-5e-f]

9能夠比對正則2:[^0-5e-f]

a能夠比對正則2:[^0-5e-f]

b能夠比對正則2:[^0-5e-f]

c能夠比對正則2:[^0-5e-f]

d能夠比對正則2:[^0-5e-f]

e不能夠比對正則2:[^0-5e-f]

f不能夠比對正則2:[^0-5e-f]

例子:

public class GeneralNumFour {

String[] strings = new String[] { "case", "casa", "caso", "cas"};

String regex = "cas[^e]";

for (String string : strings) {

if(regexMatch(string,regex)){

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

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

case不能夠比對正則:cas[^e]

casa能夠比對正則:cas[^e]

caso能夠比對正則:cas[^e]

cas不能夠比對正則:cas[^e]

cas的情況,就是說排除型字元^e不能比對任意一個字元,是以整個正規表達式的比對失敗。

注意:

排除型字元組的意思是:比對未列出的字元,而不是“不比對這個字元”

例如:cas[^e]比對cas并且不為e的字元

未完待續。。。

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

繼續閱讀