随笔 - 1656  文章 - 26 评论 - 6692 trackbacks - 253

提示1: 点击 标题 可进入首页;   提示2: 从搜索引擎中搜索 万一 可迅速找到这里.

随笔分类(1869)

随笔档案(1584)

积分与排名

  • 积分 - 1724486
  • 排名 - 10

最新评论

//匹配右边
var
  reg: TPerlRegEx;
begin
  reg := TPerlRegEx.Create(nil);

  reg.Subject := 'Delphi 6; Delphi 7; Delphi 2007; Delphi Net';
  reg.RegEx   := 'Delphi (?=2007)'; // ?=
  reg.Replacement := '◆';
  reg.ReplaceAll;

  ShowMessage(reg.Subject); //返回: Delphi 6; Delphi 7; ◆2007; Delphi Net

  FreeAndNil(reg);
end;

//不匹配右边 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := 'Delphi 6; Delphi 7; Delphi 2007; Delphi Net'; reg.RegEx := 'Delphi (?!2007)'; // ?! reg.Replacement := '◆'; reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆6; ◆7; Delphi 2007; ◆Net FreeAndNil(reg); end;
//匹配左边 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := '111, 222, ¥333, ¥444'; reg.RegEx := '(?<=¥)\d{3}'; // ?<= reg.Replacement := '◆'; reg.ReplaceAll; ShowMessage(reg.Subject); //返回: 111, 222, ¥◆, ¥◆ FreeAndNil(reg); end;
//不匹配左边 var reg: TPerlRegEx; begin reg := TPerlRegEx.Create(nil); reg.Subject := '111, 222, ¥333, ¥444'; reg.RegEx := '(?<!¥)\d{3}'; // ?<! reg.Replacement := '◆'; reg.ReplaceAll; ShowMessage(reg.Subject); //返回: ◆, ◆, ¥333, ¥444 FreeAndNil(reg); end;
posted on 2007-12-21 16:43 万一 阅读(1117) 评论(5)  编辑 收藏 网摘 所属分类: 40.Delphi 与正则表达式

FeedBack:
#1楼 2008-03-05 21:43 嘿嘿[未注册用户]
请问 要怎么设置 TPerlRegEx 才支持这样的写法 还是说这个控件不支持
(?<=[0-9]{1,10})

  回复  引用    
#2楼[楼主] 2008-03-05 22:08 万一      
匹配左右在 Perl 中也是比较新的内容, 其他语言都是跟着 Perl 走的.
这个写法暂时可能不行, 但这样可以(我测试了):
?<=[0-9]{1} 或者 ?<=[0-9]{9} 等等
{} 中能有超过 9 的数吗? 我挺长时间没碰正则表达式了, 我记得只能用 0-9

  回复  引用  查看    
#3楼 2008-03-05 22:32 嘿嘿[未注册用户]
@万一
就是不确定 有几个才加{1,9} 如果不行的话 不知道还有没别的方法

  回复  引用    
#4楼[楼主] 2008-03-05 23:32 万一      
因为暂时对"匹配左右临界"支持不是太完善(恐怕很多语言都这样), 我建议你换个思路, 把这个当作主匹配, 把其他当作临界.
  回复  引用  查看    
#5楼 2008-03-06 16:26 嘿嘿[未注册用户]
@万一
我把它改了 (?<=[0-9]|[0-9][0-9])也就只能这样了
谢谢博主关注 嘿嘿

  回复  引用    



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1009358




相关文章:

相关链接: