有一些字符串,为以下格式,?代表除 :和 空格 的任意字符
  ???:??? ?????
  ????:???????  ????????
  ?:????????? ???
  我想把 : 与 空格 之间的字符取出来,该怎么做

解决方案 »

  1.   

    //先将其分解到字符串列表中,然后在用循环取出
    procedure TForm1.Button1Click(Sender: TObject);
    var
      aa:TStringList;
      bb:String;
    begin
      bb:= StringReplace('1234:23:12:34 35 aa',':',' ',[rfReplaceAll]);
      aa:=TStringList.Create;
      aa.CommaText:=bb;
      ShowMessage(IntToStr(aa.Count));   //已全部分解到字符串列表中
      aa.Free;
    end;
      

  2.   

    copy('1234:23:12:34 35 aa',1,pos(' ','1234:23:12:34 35 aa')-1)).
    如果要都要取的话,一部分一部分取用下面的格式:
    copy(字符串,1,pos(' ',字符串)-1)
      

  3.   

    我原来知道的解法跟b51一样,不过wks(mex)我没见过,学到了。
      

  4.   

    to b51 and killers100:
    楼主是说“把 :和空格之间的字符取出来”呢,hehe
      

  5.   

    /****************************************************************//
    //  函数:已Border字符为标准提取字符串                            //
    //  范围:字符串中有特殊的字符进行分界                            //
    //  描述:SourStr 比较字符;Border 分界字符;                     //
    //        Index 分割后的字符串的顺序号(int)                     //
    //****************************************************************//function SubStr(SourStr: string; Border: Char;
      Index: integer): string;var
        TempStr : string;
        I : integer;
    begin
        TempStr := SourStr;    if Pos(Border,SourStr)=0 then
        begin
            if Length(SourStr) > 0 then Result := SourStr
            else Result := '';
        end
        else
        begin
        try
          for I := 1 to Index - 1 do
          begin
             if Pos(Border,TempStr) = 0 then
             begin
                Result := '';
                Exit;
             end;
             Delete(TempStr,1,Pos(Border,TempStr));
             TempStr := Trim(TempStr);
          end;
        except
          result := '';
          Exit;
        end;
        if Pos(Border,TempStr)=0 then
          Result := TempStr
        else
          Result := Copy(TempStr,1,Pos(Border,TempStr) - 1);
        end;
    end;
      

  6.   

    to:Linux2001
    说说也无妨,大家讨论一下
      

  7.   

    to: junerr(路在何方):
    把 :和空格之间的字符取出来...把第一个和最后一个去掉不就是吗
      

  8.   

    to wks(mex):
    不用弄得这么复杂的,象这样
    copy(str1,pos(';')+1,pos(' ')-pos(';')-1);
    不就得了嘛 :)
      

  9.   

    to:junerr(路在何方)
    你一次只能取一个串啊
      

  10.   

    不过还是先问一问 amartapple (amartapple) :
    究竟是取一个串还是取多个串啊