iOS 和Android中的正则表达式简单使用

ios 中需要使用NSRegularExpression类,NSTextCheckingResult类。

下面给出最基本的实现代码

iOS 和Android中的正则表达式简单使用
 NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(a.*)(b)" options:NSRegularExpressionCaseInsensitive error:nil];
    
    
    __block NSUInteger count = 0;
    NSString *string = @" ab  ab   ab ";
    [regex enumerateMatchesInString:string options:0 range:NSMakeRange(0, [string                                                                           length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){
        NSLog(@"---------------------------find one match!");
        
        NSRange matchRange = [match range];
        NSRange firstHalfRange = [match rangeAtIndex:1];
        NSRange secondHalfRange = [match rangeAtIndex:2];
        
        NSLog(@"the string is %@",[string substringWithRange:matchRange]);
        NSLog(@"firstHalfRange is %@",[string substringWithRange:firstHalfRange]);
        NSLog(@"secondHalfRange is %@",[string substringWithRange:secondHalfRange]);
        
        
        
        if (++count >= 100) *stop = YES;
    }];
iOS 和Android中的正则表达式简单使用

它的结果如下

iOS 和Android中的正则表达式简单使用

这里每个rang的含义如下,matchRange表示找到的每个匹配串的总体位置,firstHalfRange则表示第一个表达式(a.*)的匹配范围,当然这个范围是总范围的一部分。

如果仅仅想处理第一个匹配的结果,那么可以使用以下的代码

iOS 和Android中的正则表达式简单使用
NSTextCheckingResult *match = [regex firstMatchInString:string
                                                options:0
                                                  range:NSMakeRange(0, [string
length])];
if (match) {
    NSRange matchRange = [match range];
    NSRange firstHalfRange = [match rangeAtIndex:1];
    NSRange secondHalfRange = [match rangeAtIndex:2];
} }
iOS 和Android中的正则表达式简单使用

 

Android中需要使用Pattern 和Matcher2个类,其实和ios的基本思路是一致的!

iOS 和Android中的正则表达式简单使用
 String patternStr = "[0-9:]*";

 Pattern p = Pattern.compile(patternStr);

 Matcher m = p.matcher(originalStr);

 if (m.find()) {
         returnStr = m.group(0);
 }
iOS 和Android中的正则表达式简单使用

iOS 和Android中的正则表达式简单使用

上一篇:Android静默安装


下一篇:Android网络课程笔记-----应用自动升级