Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4489309
  • 博文数量: 192
  • 博客积分: 10014
  • 博客等级: 上将
  • 技术积分: 8232
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-21 00:22
文章分类

全部博文(192)

文章存档

2011年(4)

2009年(14)

2008年(174)

我的朋友

分类:

2008-09-05 11:32:28

perl骆驼书的第五章提了一下lookaround断言,在某些情况下相当有用.java正则表达式也支持这种用法.

分两种:

  1. lookahead 从当前位置向前查看
    正向lookahead (?=PATTERN)
    反向lookahead (?!=PATTERN)
  2. lookbehind 从当前位置向后查看
    正向lookbehind (?<=PATTERN)
    反向lookbehind (?

这两种都是零宽断言,不会正式消耗字符.

当正则式一次匹配掉太多字符的时候可以考虑使用lookahead断言,如用来删除重复单词,可以用

s/ \b(\w+) \s+ (?= \1\b) //gxi

要匹配不出现在zzzhc之后的blog可以使用反向lookbehind

/(?

阅读(1041) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~