abc=xx_123456789_0_0
替换中间的 123456789 这些字符为指定的字符,中间的数字是没有规则的。比如说替换成  abc=xx_333_0_0

解决方案 »

  1.   

    使用的是RegExprvar
      reg:TRegExpr;
      s:string;
    begin
      s := 'xx_123456789_0_0';
      reg := TRegExpr.Create;
      reg.Expression := '[\d]{9}';
      s := reg.Replace(s,'333');
      ShowMessage(s);
      reg.Free;
    end;
      

  2.   

    TperlRegEx是这样用的
    var PerlRegEx1:TPerlRegEx;beginPerlRegEx1 := TperlRegEx.Create;with PerlRegEx1 do begin  Subject := 'abc=xx_123456789_0_0'; //设置待匹配的字符串  RegEx := 'abc=xx_([^_]+)_0_0';//设置正则表达式  study; //学习该表达式,如果需要多次使用的话  replaceMent := ‘123’; //设置被替换成什么  if Match then  replace; //替换end;
      

  3.   

    var PerlRegEx1:TPerlRegEx;beginPerlRegEx1 := TperlRegEx.Create;with PerlRegEx1 do begin  Subject := 'abc=xx_123456789_0_0'; //设置待匹配的字符串  RegEx := 'abc=xx_([^_]+)_0_0';//设置正则表达式  study; //学习该表达式,如果需要多次使用的话  replaceMent := ‘123’; //设置被替换成什么  if Match then  replace; //替换  showMessage(Subject);
    end;
    PerlRegEx1.free;
      

  4.   

      with TPerlRegEx.Create do
        try
          RegEx := '(?<=abc=xx_)(\d+)(?=_0_0)';
          Subject := 'abc=xx_123456789_0_0';
          Replacement := '333';
          if Match then
          begin
            Replace;
            ShowMessage(Subject);
          end
        finally
          Free
        end;
      

  5.   

    RegExp1.Global := true;          
    RegExp1.IgnoreCase := True;
    RegExp1.Pattern := 'abc=xx_\d*';
    Edit2.Text := RegExp1.Replace(Edit1.text,'333');  Edit1.text := abc=xx_123456789_0_0