IT技术博客大学习 共学习 共进步

正则表达式的零宽断言

心路永恒 2012-09-18 23:26:56 浏览 2,763 次

平时一直都在用非常简单的表达式,匹配位置的时候,用几个元字符就够了。

当今天不得不从别人的C源代码中取出一个特定宏的定义时候,终于觉得我要用零宽断言来匹配位置了。

用的是python的 re模块,开始半天都匹配不上,因为是GUI程序,竟然也没有仔细看控制台的输出。后来仔细看了一下,又google了一下,看到两个匹配要取出字符串前面的零宽断言都必须是定长的时候……才明白怎么回事。

也搞不清楚什么负向之类的复杂中文名称,记录下我自己的理解:
(?=exp)真正有用的部分,在这个位置之前,这个位置需要匹配exp
(?<=exp)真正有用的部分,在这个位置之后,这个位置需要匹配exp
(?!exp)真正有用的部分,在这个位置之前,这个位置不匹配exp
(?<!exp)真正有用的部分,在这个位置之后,这个位置不匹配exp

建议继续学习

  1. grep 正则表达式选项要记得转义 (阅读 6,445)
  2. 统计最近用过的linux命令 (阅读 6,405)
  3. 正则表达式基础 (阅读 6,162)
  4. 正则表达式的与或非 (阅读 5,744)
  5. 学习Grep,Sed中的正则 (阅读 5,267)
  6. URL正则表达式 (阅读 4,663)
  7. 正则表达式简要入门 (阅读 4,364)
  8. 正则转义符汇总 (阅读 4,321)
  9. 使用Oracle正则表达式监控应用到数据库的连接情况 (阅读 4,267)
  10. PHP 正则里面的两个重要技巧 (阅读 4,261)