//替换一般字符串,默认是区分大小写的
var
  reg: TPerlRegEx; //声明正则表达式变量
begin
  reg := TPerlRegEx.Create; //建立,D7下貌似不能TPerlRegEx.Create(nil)
  if Memo1.Text <> '' then  //如果源字符串为空将会出错,所以加判断语句
    begin
      reg.Subject := Memo1.Text;    //这是要替换的源字符串,例如'我爱DELPHI, 但Delphi不爱我!'
      reg.RegEx := Edit1.Text;       //这是表达式, 在这里是准备替换掉的子串,例如'Delphi'
      reg.Replacement := Edit2.Text;  //要替换成的新串,例如'◆'
      reg.ReplaceAll;           //执行全部替换

      ShowMessage(reg.Subject); //用消息框显示替换结果: 我爱DELPHI, 但◆不爱我!
      Memo1.Text:=reg.Subject;  //用memo显示替换结果
    end
    else
    reg.Free; //D7下貌似不能 FreeAndNil(reg)
end;

 

上图标题错了,应该是不区分大小写

//不区分大小写
var
  reg: TPerlRegEx; //声明正则表达式变量
begin
  reg := TPerlRegEx.Create; //建立,D7下貌似不能TPerlRegEx.Create(nil)
  if Memo1.Text <> '' then  //如果源字符串为空将会出错,所以加判断语句
    begin
      reg.Subject := Memo1.Text;    //这是要替换的源字符串,例如'我爱DELPHI, 但Delphi不爱我!'
      reg.RegEx := Edit1.Text;       //这是表达式, 在这里是准备替换掉的子串,例如'Delphi'
      reg.Replacement := Edit2.Text;  //要替换成的新串,例如'◆'
      reg.Options := [preCaseLess]; //不区分大小的设定, 默认是区分的
      reg.ReplaceAll;           //执行全部替换

      ShowMessage(reg.Subject); //用消息框显示替换结果: 我爱◆, 但◆不爱我!
      Memo1.Text:=reg.Subject;  //用memo显示替换结果
    end
    else
    reg.Free; //D7下貌似不能 FreeAndNil(reg)
end;

 

//试试中文替换
var
  reg: TPerlRegEx; //声明正则表达式变量
begin
  reg := TPerlRegEx.Create; //建立,D7下貌似不能TPerlRegEx.Create(nil)
  if Memo1.Text <> '' then  //如果源字符串为空将会出错,所以加判断语句
    begin
      reg.Subject := Memo1.Text;    //这是要替换的源字符串,例如'我爱DELPHI, 但Delphi不爱我!'
      reg.RegEx := Edit1.Text;       //这是表达式, 在这里是准备替换掉的子串,例如'我'
      reg.Replacement := Edit2.Text;  //要替换成的新串,例如'◆'
      reg.ReplaceAll;           //执行全部替换

      ShowMessage(reg.Subject); //用消息框显示替换结果: ◆爱DELPHI, 但Delphi不爱◆!
      Memo1.Text:=reg.Subject;  //用memo显示替换结果
    end
    else
    reg.Free; //D7下貌似不能 FreeAndNil(reg)
end;

 

在做不区分大小写的中文替换测试时,并没有万一老师“如果不区分大小写, 竟然也不区分中文字了”的那种情况,我猜这是因为我是在D7下测试的原故。

posted on 2010-11-02 17:30  巅枫  阅读(1068)  评论(0)    收藏  举报