美文网首页
正则表达式中的贪婪匹配和非贪婪匹配

正则表达式中的贪婪匹配和非贪婪匹配

作者: 格雷s | 来源:发表于2019-07-16 15:59 被阅读0次

下面以iOS oc 代码为例

NSString *test1 = @"<H1>Chapter 1 - 介绍正则表达式</H1>";
    //贪婪匹配,会从最开始的 < 匹配到最后的 >
    NSString *reg1 = @"<.*>";
    //非贪婪匹配,但是会匹配出两个结果
    NSString *reg2 = @"<.*?>";
    //非贪婪匹配,只匹配前面一个<H1>
    NSString *reg3 = @"<\\w+?>";
    NSArray<NSTextCheckingResult*> *matchs1 = [test1 matchesWithRegex:reg1];
    NSArray<NSTextCheckingResult*> *matchs2 = [test1 matchesWithRegex:reg2];
    NSArray<NSTextCheckingResult*> *matchs3 = [test1 matchesWithRegex:reg3];
    for (NSTextCheckingResult *match in matchs1) {
        NSLog(@"matchs1***%@",NSStringFromRange(match.range));
    }
    
    for (NSTextCheckingResult *match in matchs2) {
        NSLog(@"matchs2***%@",NSStringFromRange(match.range));
    }
    
    for (NSTextCheckingResult *match in matchs3) {
        NSLog(@"matchs3***%@",NSStringFromRange(match.range));
    }

输出结果


image.png

通过在 *、+ 或 ? 限定符之后放置 ?,该表达式从"贪心"表达式转换为"非贪心"表达式或者最小匹配。

相关文章

  • 正则表达式的贪婪模式和非贪婪模式

    一、什么是贪婪模式和非贪婪模式? 定义 贪婪模式:正则表达式趋向于匹配最大长度。 非贪婪模式:正则表达式趋向于匹配...

  • Day17 贪婪、非贪婪、re模块

    一、贪婪和非贪婪 非贪婪: 在正则表达式中控制匹配不确定次数的符号后边可以加?,来表示尽可能少的匹配。 在贪婪的时...

  • 贪婪与非贪婪匹配

    1.什么是正则表达式的贪婪与非贪婪匹配 贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使...

  • 关于python正则表达式的补充

    1.贪婪匹配和非贪婪匹配 贪婪匹配:顾名思义,贪婪,匹配满足条件越多越好 非贪婪匹配,相反,匹配满足条件越少越好p...

  • Python基础022--正则表达式

    正则表达式模块、贪婪匹配和非贪婪匹配、正则分组、match和search的使用 常用的正则表达式元字符 正则表达式...

  • 正则表达式:贪婪匹配与非贪婪匹配

    贪婪匹配 贪婪匹配:在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配 非贪婪匹配 非贪婪匹配:在满足匹...

  • 正则表达式

    1.什么是贪婪模式和非贪婪模式? 贪婪模式 一般情况下,正则表达式在匹配过程中会尽可能多的匹配 非贪婪模式 让正则...

  • 正则表达式

    贪婪模式和非贪婪模式 正则表达式是贪婪匹配的。比如:'123456789'.replace(/\d{3,6}/g,...

  • Day18学习总结-正则表达式和Pygame

    贪婪与非贪婪 非贪婪:在正则中控制匹配不确定次数的符号后边可以加?,来表示尽可能少的匹配贪婪:在贪婪的时候,匹配是...

  • day18总结

    贪婪和非贪婪 什么是非贪婪:在正则中控制匹配不确定次数的符号后边可以加?,来表示尽可能少的匹配在贪婪的时候,匹配是...

网友评论

      本文标题:正则表达式中的贪婪匹配和非贪婪匹配

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