部分高级正则特性 使用

简介:
一些特殊正则元字符说明 :
  
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

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

目录
相关文章
|
3月前
|
SQL 数据处理 数据库
SQL正则表达式应用:文本数据处理的强大工具——深入探讨数据验证、模式搜索、字符替换等核心功能及性能优化和兼容性问题
【8月更文挑战第31天】SQL正则表达式是数据库管理和应用开发中处理文本数据的强大工具,支持数据验证、模式搜索和字符替换等功能。本文通过问答形式介绍了其基本概念、使用方法及注意事项,帮助读者掌握这一重要技能,提升文本数据处理效率。尽管功能强大,但在不同数据库系统中可能存在兼容性问题,需谨慎使用以优化性能。
44 0
|
6月前
|
Python
正则表达式高级用法
正则表达式是强大的文本匹配工具,常用于搜索、匹配和验证字符串。高级用法包括:捕获组(区分需要提取的内容)、非捕获组(减少开销)、零宽断言(定位匹配位置)、反向引用(匹配相同内容)、嵌入代码(实现复杂逻辑)、贪婪与非贪婪匹配(控制匹配范围)和递归匹配(处理嵌套结构)。了解这些高级技巧能提升字符串操作效率。示例展示了验证Email、电话号码、提取URL和清理多余空格的正则表达式应用。
|
6月前
|
Unix Linux
扩展正则表达式
扩展正则表达式
41 4
|
6月前
|
开发框架 .NET C#
C# 10.0中的扩展属性与模式匹配:深入解析
【1月更文挑战第20天】C# 10.0引入了众多新特性,其中扩展属性与模式匹配的结合为开发者提供了更强大、更灵活的类型检查和代码分支能力。通过这一特性,开发者可以在不修改原始类的情况下,为其添加新的行为,并在模式匹配中利用这些扩展属性进行更精细的控制。本文将详细探讨C# 10.0中扩展属性与模式匹配的工作原理、使用场景以及最佳实践,帮助读者更好地理解和应用这一新功能。
|
PHP 开发者
正则表达式中的【模式修正符】 完美增强字符串处理的能力!
如果你还没有搞懂模式修饰符是什么?那么你必须要看一下这篇文章!!
56 0
正则表达式中的【模式修正符】 完美增强字符串处理的能力!
|
JavaScript 前端开发
带你读《现代TypeScript高级教程》十二、类型兼容:结构化类型(1)
带你读《现代TypeScript高级教程》十二、类型兼容:结构化类型(1)
|
JavaScript 安全
带你读《现代TypeScript高级教程》十二、类型兼容:结构化类型(2)
带你读《现代TypeScript高级教程》十二、类型兼容:结构化类型(2)
|
索引
正则的扩展详解
正则的扩展详解
87 0
|
前端开发
前端学习案例1-正则概述-元字符
前端学习案例1-正则概述-元字符
71 0
前端学习案例1-正则概述-元字符
正则表达式的通用语法以及用法作用
正则表达式的通用语法以及用法作用
138 0
正则表达式的通用语法以及用法作用