排除型字元組:
作用:規定某個位置不容許出現的字元
形式:以[^...]給出,在方括号内列出不容許出現的字元
排除型字元組仍然必須比對一個字元,不能比對空字元
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