Android/iOS使用正则表达式总结
2016-07-14 本文已影响215人
蓝点工坊
一.正则表达式
这个懂的人都懂,不懂的人就算了,难懂.
二.Android下使用正则表达式
2.1 方法一:使用string的matchs方法
这是最简洁的使用,其中下面Pattern就是正则表达式
public boolean isRegMatch(String testString,String pattern){
if(testString == null)
return false;
//这里是正规表达式格式
boolean ret = testString.matches(pattern);
return ret;
}
2.2 方法二:使用Pattern对象,写起来没那么优雅
public boolean isRegMatch(String testString,String pattern){
if(testString == null)
return false;
String regExpr = "^"+pattern+"$";
Pattern p = Pattern.compile(regExpr);
Matcher m = p.matcher(testString);
boolean test = m.matches();
return ret;
}
三.iOS使用正则表达式
-(BOOL)isRegMatch:(NSString *)testString pattern:(NSString*)pattern{
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&error];
NSTextCheckingResult *result = [regex firstMatchInString:name options:0 range:NSMakeRange(0, [name length])];
if (result) {
// NSLog(@"%@\n", [name substringWithRange:result.range]);
return YES;
}
return NO;
}
四. 常见一组样例
4.1 并列关系
下面表达式表示可以配置aaa或者GetFit-X64
aaa|GetFit-X64
4.2 以特定字符串打头
下面表达式表示匹配所以以Watch打头的所有字符串
Watch.*
注意不能写成Watch* ,它表示匹配后面任意多个h的字符串,比如 Watchhhh
但是在iOS下是等效于Watch.*,但Android提示不匹配.