TPerlRegEx 逆序环视与顺序环视的 bug ?

s11ss 2010-12-11 07:35:46
  //翻译自《精通正则表达式(第三版)》的第62,63页的例子
with TPerlRegEx.Create do
try
Subject := 'see Jeffs book';
RegEx := '(?<=\bJeff)(?=s\b)';
Replacement := '''';
ReplaceAll;//为什么没匹配并替换
ShowMessage(Subject);//结果应当是see Jeff's book,但实际上不是
finally
Free
end;
...全文
99 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
biganchor 2011-01-09
  • 打赏
  • 举报
回复
确实有问题,我也对这页的正则表达工作了测试,无论匹配还是替换,这条式子都不起作用。
s11ss 2010-12-15
  • 打赏
  • 举报
回复
http://www.regular-expressions.info[Quote=引用 6 楼 cj205 的回复:]
我想了解下\b和环视在delphi里面的用法介绍~~
[/Quote]
Mr-Jee 2010-12-15
  • 打赏
  • 举报
回复
我想了解下\b和环视在delphi里面的用法介绍~~
Henry.6 2010-12-14
  • 打赏
  • 举报
回复
应该是bug。我是这样认为的,它是根据匹配字符的长度来判断是否找到匹配。结果匹配字符串为''空字符串,长度为0,所以放弃替换。
s11ss 2010-12-12
  • 打赏
  • 举报
回复
跟踪过ReplaceAll,不匹配[Quote=引用 3 楼 wuyazhe 的回复:]
你要不先尝试输出ReplaceAll返回结果是否是true。
然后不用替换,匹配一下看结果。
从代码上看,应该会替换的。
[/Quote]
兔子-顾问 2010-12-12
  • 打赏
  • 举报
回复
你要不先尝试输出ReplaceAll返回结果是否是true。
然后不用替换,匹配一下看结果。
从代码上看,应该会替换的。
s11ss 2010-12-12
  • 打赏
  • 举报
回复
电子书[Quote=引用 1 楼 lovemit 的回复:]
你买的书.还是下的电子书啊.

也想好好学学!
[/Quote]
Mit1208 2010-12-11
  • 打赏
  • 举报
回复
你买的书.还是下的电子书啊.

也想好好学学!

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧