幾種正則的表達

2021-06-22 06:10:22 字數 4197 閱讀 8683

首先簡單介紹一下正規表示式的基本寫法及用法

\d 匹配任何乙個數字,即[0-9]

\d+表示1個以上的數字

\d*標示0個或多個數字

\s 表示分隔符,包括空格、製表符和換行符

\s* 0個或多個分隔符

\w 表示字母、數字和下劃線,這裡還包括unicode字元,不同的語言裡有些不同

\w 表示4個非空白字元

. 表示任何乙個字元,不包括換行符

.* 表示任何多個字元,當然也不包括換行符了

^([0-9]) 表示數字開頭

([0-9])$ 表示數字結尾

([0-9a-za-z]) 表示數字字母

| 表示或的關係,如\d|\w 表示數字或字母

(.|[\r\n])* 表示任何多個字元,包括換行符,貪婪掃瞄

(.|[\r\n])*? 表示任何多個字元,包括換行符,懶惰掃瞄

(?:.|[\\r\\n])   以(?:開頭時的分組資訊,表示不讀取到緩衝器裡,避免rangeatindex呼叫時產生***,後面還會遇到這樣的(?:寫法

@implementation tsregularexpressionutil

//郵箱

+ (bool) validateemail:(nsstring *)email

";    nspredicate *emailtest = [nspredicate predicatewithformat:@"self matches %@", emailregex];

return [emailtest evaluatewithobject:email];

}//手機號碼驗證

+ (bool) validatemobile:(nsstring *)mobile

$";    nspredicate *phonetest = [nspredicate predicatewithformat:@"self matches %@",phoneregex];

return [phonetest evaluatewithobject:mobile];

}//車牌號驗證

+ (bool) validatecarno:(nsstring *)carno

[a-za-z][a-za-z_0-9][a-za-z_0-9_\u4e00-\u9fa5]$";

nspredicate *cartest = [nspredicate predicatewithformat:@"self matches %@",carregex];

nslog(@"cartest is %@",cartest);

return [cartest evaluatewithobject:carno];

}//車型

+ (bool) validatecartype:(nsstring *)cartype

//使用者名稱

+ (bool) validateusername:(nsstring *)name

+$";

nspredicate *usernamepredicate = [nspredicate predicatewithformat:@"self matches %@",usernameregex];

bool b = [usernamepredicate evaluatewithobject:name];

return b;

}//密碼

+ (bool) validatepassword:(nsstring *)password

+$";

nspredicate *passwordpredicate = [nspredicate predicatewithformat:@"self matches %@",passwordregex];

return [passwordpredicate evaluatewithobject:password];

}//暱稱

+ (bool) validatenickname:(nsstring *)nickname

)(·[\u4e00-\u9fa5])*";

nspredicate *passwordpredicate = [nspredicate predicatewithformat:@"self matches %@",nicknameregex];

return [passwordpredicate evaluatewithobject:nickname];

}//身份證號

+ (bool) validateidentitycard: (nsstring *)identitycard

nsstring *regex2 = @"^(\\d|\\d)(\\d|[xx])$";

nspredicate *identitycardpredicate = [nspredicate predicatewithformat:@"self matches %@",regex2];

return [identitycardpredicate evaluatewithobject:identitycard];

}//銀行卡

+ (bool) validatebankcardnumber: (nsstring *)bankcardnumber

nsstring *regex2 = @"^(\\d)";

nspredicate *bankcardpredicate = [nspredicate predicatewithformat:@"self matches %@",regex2];

return [bankcardpredicate evaluatewithobject:bankcardnumber];

}//銀行卡後四位

+ (bool) validatebankcardlastnumber: (nsstring *)bankcardnumber

nsstring *regex2 = @"^(\\d)";

nspredicate *bankcardpredicate = [nspredicate predicatewithformat:@"self matches %@",regex2];

return [bankcardpredicate evaluatewithobject:bankcardnumber];

}//cvn

+ (bool) validatecvncode: (nsstring *)cvncode

nsstring *regex2 = @"^(\\d)";

nspredicate *cvncodepredicate = [nspredicate predicatewithformat:@"self matches %@",regex2];

return [cvncodepredicate evaluatewithobject:cvncode];

}//month

+ (bool) validatemonth: (nsstring *)month

nsstring *regex2 = @"(^(0)([0-9])$)|(^(1)([0-2])$)";

nspredicate *monthpredicate = [nspredicate predicatewithformat:@"self matches %@",regex2];

return [monthpredicate evaluatewithobject:month];

}//month

+ (bool) validateyear: (nsstring *)year

nsstring *regex2 = @"^([1-3])([0-9])$";

nspredicate *yearpredicate = [nspredicate predicatewithformat:@"self matches %@",regex2];

return [yearpredicate evaluatewithobject:year];

}//verifycode

+ (bool) validateverifycode: (nsstring *)verifycode

nsstring *regex2 = @"^(\\d)";

nspredicate *verifycodepredicate = [nspredicate predicatewithformat:@"self matches %@",regex2];

return [verifycodepredicate evaluatewithobject:verifycode];

}@end

幾種常見的正規表示式

d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d d 0 0 非正浮點數 負浮點數 ...

幾種常用的數字正規表示式

只能輸入1個數字 表示式 d 描述 匹配乙個數字 匹配的例子 0,1,2,3 不匹配的例子 只能輸入n個數字 表示式 d 例如 d 描述 匹配8個數字 匹配的例子 12345678,22223334,12344321 不匹配的例子 只能輸入至少n個數字 表示式 d 例如 d 描述 匹配最少n個數字 ...

正規表示式幾種常用方法介紹

1 exec 方法是乙個正規表示式方法,用於檢索字串中的正規表示式的匹配。函式返回乙個陣列中,其中陣列中存放匹配的結果 如果未找到匹配,則返回值為null。2 test 方法是乙個正規表示式方法,用於檢測乙個字串是否匹配某個模式,如果字串中含有匹配的文字,則返回true,否則返回false。3 se...