一些特殊正则元字符说明:
  1. *? 和 +? 和 {n,}?  懒惰匹配 
   1.1 非懒惰                   ↓
    echo "ab2c121a" |perl -ne 'print $1 if /(.*)"d/;'   #print ab2c12
   1.2 懒惰                       ↓
    echo "ab2c121a" |perl -ne 'print $1 if /(.*?)"d/;'   #print ab
  2.  回溯引用和前后查找:
   2.1 向前查找   (?=..)                   ↓
    echo "ab2c121a" |perl -ne 'print $1 if /(.*?)(?=2)/;'  #print ab
   2.2 向后查找 (?<=..)                 ↓
    echo "ab2c121a" |perl -ne 'print $1 if /(?<=2)(.*)(?=2)/;' #print c1
   2.3 负向-前/后 查找  (?!..) (?<!..)   
    #不能匹配 ..                               ↓
    echo "ab2c121a" |perl -ne 'print $1 if /(?<!2)(c.*)/;'    #print 无
    echo "ab2c121a" |perl -ne 'print $1 if /(?<!3)(c.*)/;'    #print c121a
   2.4 条件 ?()  = if   ?()| = if else
    # ?()  例如  <p> </p> 必须同时出现                ↓      ↓  
    echo "<p>xx</p>"|perl -ne 'print $2  if /(<p>)?("w*)(?(1)<"/p>)/'   #print  xx
    echo "<p>xx"|perl -ne 'print $2,""n" if /(<p>)?("w*)(?(1)<"/p>)/'    #print 空
    echo "xx"|perl -ne 'print $2 if /(<p>)?("w*)(?(1)<"/p>)/'    #print xx
    # ?()|  例如 还是上面的, 
    # 当 有<p> 可以接</p> 也可以接 数字结尾                            ↓
echo "<p>xx1</p>"|perl -ne 'print $2  if /(<p>)?("w*)(?(1)<"/p>|"d)/'  #print xx1

echo "<p>xx1"|perl -ne 'print $2  if /(<p>)?("w*)(?(1)<"/p>|"d)/'    # print xx

本文转自博客园刘凯毅的博客,原文链接:部分高级正则特性 使用,如需转载请自行联系原博主。

部分高级正则特性 使用相关推荐

  1. Redis高级实用特性:发布及订阅消息

    在之前的文章中,介绍过Redis数据库高级实用特性中的持久化机制,今天为大家介绍Redis的另一高级实用特性--发布及订阅消息. 发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布 ...

  2. Redis学习第八课:Redis高级实用特性(一)

    Redis高级实用特性 注:我学习的环境是vmware7.1 + ubantu10.10+ redis 3.0.2 1.安全性 设置客户端连接后进行任何其他指定前需要的密码.因为redis速度相当快, ...

  3. PostgreSQL用户应掌握的高级SQL特性

    PostgreSQL数据库在SQL和NoSQL方面具有很多丰富的特性,本文将先从SQL高级特性入手来进行介绍. **一.PostgreSQL的SQL高级特性 ** 这一部分主要介绍PostgreSQL ...

  4. MySQL高级 - MyISAM特性

    MyISAM ​ MyISAM 不支持事务.也不支持外键,其优势是访问的速度快,对事务的完整性没有要求或者以SELECT.INSERT为主的应用基本上都可以使用这个引擎来创建表 .有以下两个比较重要的 ...

  5. MySQL高级 - InnoDB特性

    InnoDB ​ InnoDB存储引擎是Mysql的默认存储引擎.InnoDB存储引擎提供了具有提交.回滚.崩溃恢复能力的事务安全.但是对比MyISAM的存储引擎,InnoDB写的处理效率差一些,并且 ...

  6. java高级类_Java高级类特性(一)

    权限类内同包不同包子类不同包非子类 private √ × × × default √ √ × × protected √ √ √ × public √ √ √ √ 四.super关键字的使用 pac ...

  7. SQL 必知必会·笔记20高级SQL特性

    1. 约束 约束(constraint)就是管理如何插入或处理数据库数据的规则.DBMS通过在数据库表上施加约束来实施引用完整性. 1.1 主键 主键是一种特殊的约束,用来保证一列(或一组列)中的值是 ...

  8. 绕过路由系统 (Bypassing the Routing System)| 高级路由特性

    转载于:https://www.cnblogs.com/ganmk--jy/p/5573900.html

  9. 数据库的高级SQL特性

    一.约束 1.唯一约束 唯一约束用来保证一个列中的数据唯一,他们和主键的区别是: 表可包含多个唯一约束,但每个表只有一个主键 唯一约束列可包含null值 唯一约束列可修改.更新及重复使用 2.检查约束 ...

最新文章

  1. vs2010 学习Silverlight学习笔记(7):控件样式与模板
  2. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置边界颜色)实战
  3. 《关系营销2.0——社交网络时代的营销之道》一从单向沟通转向多方沟通
  4. arcface mxnet转onnx
  5. UA MATH563 概率论的数学基础 中心极限定理21 Skorohod定理的证明
  6. 不是内部或外部命令,也不是可运行的程序 或批处理文件。(如果放了环境变量还是没有用的话)(已经解决)
  7. 【学习笔记】《数据挖掘:理论与算法》CH5 支持向量机
  8. [C # 读书笔记]interface 接口 abstract
  9. 【BZOJ3676】 [Apio2014]回文串(SAM,manacher)
  10. android glide本地图片,Glide下载图片并保存到本地
  11. JDK8那些惊为天人的新特性
  12. gtj2018如何生成工程量报表_如何更高效地使用EXCEL,一键生成报表?
  13. 微信小程序批量获取input的输入值,监听输入框,数据同步
  14. SQL语句之表的创建和使用
  15. 移动开发技术(Android)——实验1 Android开发环境搭建及简单程序实现
  16. VirtualBox设置桥接网络
  17. Win10系统上设置Microsoft store的默认下载路径
  18. 如把联想电脑计算机图标放在桌面上,桌面无“我的电脑”图标
  19. PnPUtil (PnPUtil.exe) 是一个命令行工具,使管理员可以执行以下操作驱动程序包
  20. JSON.parse解析失败(报错,出错)

热门文章

  1. java高质量图片压缩
  2. Linux 配置网络
  3. MDaemon替换注册码怎样人工激活.docx
  4. Alter index coalesce VS shrink space
  5. 微软1月补丁星期二值得关注的蠕虫及其它
  6. 恶意软件利用合法的代码签名证书横行Windows 系统
  7. Grafana 中存在严重的未授权任意文件读取漏洞,已遭利用
  8. 微软披露首个由中国发现的蠕虫级漏洞 奇安信代码安全实验室获致谢
  9. 这个乐趣,使用芯片操作集成电路
  10. Android P Beta 3 现已发布!