zoukankan      html  css  js  c++  java
  • shell 实现懒惰匹配或最小匹配

    1. 简介

      正则表达式默认情况下为贪婪模式,即在满足表达式的情况下尽可能多的匹配字符;

      但有时可能需要在满足要求的情况下匹配尽可能少的字符,这就要用到懒惰模式;

    2. 基本用法

      这是一个文本文件,匹配要求:以 concat( 开头,之后任意个字符,然后是英文逗号的文本

      

    2.1 默认情况下的贪婪模式

      grep -oP "concat(.*," test2.xml

      

     2.2 懒惰模式

      * 和 + 限定符都是贪婪的,因为它们会尽可能多的匹配文字,只要在它们的后面加上一个?就可以实现懒惰或最小匹配

      grep -oP "concat(.*?," test2.xml

      

    3. 懒惰模式的方案

    3.1  标准用法

      正则表达式时采用懒惰模式

    3.2 排除匹配字符的后缀

      比如上面需要匹配 concat( 开头,中间任意字符,然后是英文逗号的文本

      此时我们在匹配中间任意字符是,排除英文逗号,也可以实现懒惰匹配的效果

      grep -oP "concat([^,]*," test2.xml

      

      

  • 相关阅读:
    opengl一些基础函数-- 缓冲区
    width = 100%??
    设置scrollTop无效
    es5与es6继承区别
    immutable-treeUtils树的理解
    react 事件绑定
    es-6 class
    es6-Module语法
    es6--set数组去重,Map数据结构
    promise对象
  • 原文地址:https://www.cnblogs.com/virgosnail/p/12910584.html
Copyright © 2011-2022 走看看