本帖最后由 salivasoft 于 2011-05-01 22:17:55 编辑

解决方案 »

  1.   

    //不用正则的处理:uses strutils;procedure TForm1.Button1Click(Sender: TObject);
    var
      i: integer;
      sl: tstringlist;
    begin
      sl:= tstringlist.Create;
      sl.Add('非诚勿扰0103');
      sl.Add('锵锵三人行BD');
      sl.Add('BD.快乐大本营20110103');
      for i:= length(sl.Strings[0]) downto 1 do
        if (ByteType(sl.Strings[0][i],1) <> mbSingleByte) then
        begin
          showmessage(rightstr(sl.Strings[0],length(sl.Strings[0])-i));
          break;
        end;  for i:= length(sl.Strings[1]) downto 1 do
        if (ByteType(sl.Strings[1][i],1) <> mbSingleByte) then
        begin
          showmessage(rightstr(sl.Strings[1],length(sl.Strings[1])-i));
          break;
        end;  sl.Free;
    end;
      

  2.   


    {不好意思, 下面是用TPerlRegEx写的}
      with PerlRegEx1 do begin
        Subject := 'BD.快乐大本营20110103';
        RegEx := '([\xB0-\xF7][\xA1-\xFE])+';
        if Match then
          Showmessage(Copy(Subject, MatchedExpressionOffset+MatchedExpressionLength, MaxInt));
      end;