美文网首页
使用正则表达式的方法

使用正则表达式的方法

作者: UILabelkell | 来源:发表于2016-01-02 14:34 被阅读78次

    1、创建一个正则表达式对像:定义规则

    2、利用正则表达式对像 来测试 相应 的字符串

    如下例子:
    <pre> NSString *username = @"5347858h7";
    NSString *pattern = @"[0-9]";
    NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];

    // 2.测试字符串 NSArray *results = [regex matchesInString:username options:0 range:NSMakeRange(0, username.length)];

    Pattern : 样式\规则

    NSString *str = @"#呵呵呵#[偷笑] http://foo.com/blah_blah #解放军#//http://foo.com/blah_blah @Ring花椰菜:就#范德萨发生的#舍不得打[test] 就惯#急急急#着他吧[挖鼻屎]//@崔西狮:小拳头举起又放下了 说点啥好呢…… //@toto97:@崔西狮 蹦米咋不揍他#哈哈哈# http://foo.com/blah_blah";

    /** 1.判断字符串是否符合某个特定规则 * 判断某个字符串是否为QQ号码\电话号码\邮箱

    2.截取字符串中符合某个特定规则的内容 * 截取@"#呵呵呵#[偷笑]5345 http://foo.com/blah_blah #解放军# 58937985"的所有话题\表情\链接 */

    // 1.创建正则表达式
    // NSString *pattern = @"[a-zA-Z]{1,}"; //
    NSString *pattern = @"[a-zA-Z]+";
    // 表情的规则 NSString *emotionPattern = @"\[[0-9a-zA-Z\u4e00-\u9fa5]+\]";
    // @的规则 NSString *atPattern = @"@[0-9a-zA-Z\u4e00-\u9fa5]+"; // #话题#的规则 NSString *topicPattern = @"#[0-9a-zA-Z\u4e00-\u9fa5]+#";
    // url链接的规则 NSString *urlPattern = @"\b(([\w-]+://?|www[.])[\s()<>]+(?:\([\w\d]+\)|([[:punct:]\s]|/)))";

    // | 匹配多个条件,相当于or\或 NSString *pattern = [NSString stringWithFormat:@"%@|%@|%@|%@", emotionPattern, atPattern, topicPattern, urlPattern];

    NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:pattern options:0 error:nil];

    // 2.测试字符串 NSArray *results = [regex matchesInString:str options:0 range:NSMakeRange(0, str.length)]; //

    3.遍历结果 for (NSTextCheckingResult *result in results) {
    NSLog(@"%@ %@", NSStringFromRange(result.range),
    [str substringWithRange:result.range]);
    }
    }
    </pre>

    相关文章

      网友评论

          本文标题:使用正则表达式的方法

          本文链接:https://www.haomeiwen.com/subject/lonwhttx.html