美文网首页
正则表达式

正则表达式

作者: 思念那年慕云 | 来源:发表于2017-03-09 10:16 被阅读19次

百度百科中的详细介绍

一个正则表达式组成:
条件表达式(0-n个,不一定有)+子表达式(必须有)

表达式 预查方式
(?=[pattern]+$) 正向肯定预查(allIs,全都是)
(?![pattern]+$) 正向否定预查(notAll,不全是)
(?=.*[pattern]) 正向肯定预查(contain,包含)
(?!.*[pattern]) 正向否定预查(notContain,不包含)
(?!.*[pattern].*) 正向否定预查(allNot,全不是)
(?![pattern]).* 正向否定预查(allNot,全不是)

分析上表:
粗略的理解:?= 全都是?! 不全是?=.* 包含?!.* 不包含

第五个: (?!.*[pattern].*)

?!.*[pattern]表示不包含pattern,结尾的.*表示除\n\r之外的任意字符出现0-n次,也就是0次,1次,2次。。。n次的都匹配出来了,所以是全不是。


同时包含字母和数字怎么写?

((?=.*\d)(?=.*[a-zA-Z]))[\da-zA-Z]*
分析:条件表达式最外层括号加不加都行,而且条件表达式限定了必须包含字母或者数字,而且后面的[\da-zA-Z]又限定了必须是字母或者数字,*表示出现任意次,但是由于条件表达式,这里的*也就不可能匹配到为0的时候。

匹配:(数字)

    #匹配str中的(数字)
    NSString *str = @"(01)9729/219(02)4361371";  
    NSString *reguStr = @"\\([0-9]*\\)";

匹配@®开头,®结尾的字符串。

#pragma Mrhan- 匹配@®开头,®结尾的字符串。
-(void)zhengZeBiaoDaShi
{
    NSString *contentString = @"@韩sdafasd@®2 ®军,woca@®nimaheh呵呵®";
    NSString *reguStr = @"@®([\\da-zA-Z[\u4e00-\u9fa5]]*)®";
    //(@®|®)
    //@®([\\da-zA-Z[\u4e00-\u9fa5]]*)®
    NSLog(@"regustr===%@",reguStr);
    
    NSRegularExpression * regularExpression = [NSRegularExpression regularExpressionWithPattern:reguStr options:NSRegularExpressionCaseInsensitive error:nil];
    
    //匹配字符串  第一个参数: 在哪个字符串中进行匹配  第二个参数: 匹配方式: 全部匹配 第三个参数: 匹配范围  返回值 (NSArray<NSTextCheckingResult *> *)
    
    NSArray * checkingResult = [regularExpression matchesInString:contentString options:NSMatchingReportCompletion range:NSMakeRange(0, contentString.length)];
    
    NSLog(@"checkingResult--%@",checkingResult);
    
    //遍历数组., 获取匹配成功的字符串的范围 NSRange (因为替换后, 字符串的长度在改变,所以使用倒序来进行替换,来避免范围越界问题)
    for (NSInteger i = checkingResult.count-1  ; i<checkingResult.count; i--) {
        
        //获取range
        NSTextCheckingResult *result = checkingResult[i];
        
        
        NSLog(@"result.range--%@",NSStringFromRange(result.range));
        
    }

}

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

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