我想截取一段字符串
<img src="http://cache.soso.com/img/logo_mus.gif;class src http://cache.soso.com/img/logo_1.gif;>
例如一段源码中有一行是这样的
我想截取第一个http://cache.soso.com/img/logo_mus.gif这段字符串。
因为有2个;了。不知道怎么下手了
取;来分析就有2段了。麻烦帮帮忙!!
有2个;的情况下怎么取第一个;

解决方案 »

  1.   

    var 
    str1:string;
    i:integer;
    begin
         str1:='<img src="http://cache.soso.com/img/logo_mus.gif;class src http://cache.soso.com/img/logo_1.gif;>';
         For i:=1 to length(str1) do
          begin
           if str1[i]=';' then
            break;
          end;
    end;
      

  2.   

    先找"src="",然后再找";"然后就可以提取出来了.
      

  3.   

    不是,僵哥
    我的意思是又多个src= ;,要取出每一段
    比如12(3)45(67)8901(235)4要取出()内的数据。。
      

  4.   

    这样的话,提取出来的会不会变成http://cache.soso.com/img/logo_mus.gif;class src http://cache.soso.com/img/logo_1.gif了
      

  5.   

    取<img src="和;> 之间的字符,然后用stringlist,然后就可以取出了。
      

  6.   

    StringReplace + stringlist 就可以了, 前者将空格替换
      

  7.   


    //你是不是要取所有的http://到;之间的网址,如果是的话可以用如下正则表达式(需要RegExpr.pas):
    var
      myExpr: TRegExpr;
    begin
      myExpr := TRegExpr.Create;
      myExpr.Expression := '(http://.*?);';
      if myExpr.Exec(你要匹配的字符串内容) then
        repeat
          Memo1.Lines.Add(myExpr.Match[1]);
        until not MyExpr.ExecNext;
      myExpr.Free;
    end;
      

  8.   

    我觉得应该先匹配HTTP,然后找后面的“;” 最后截取字符串
      

  9.   

    OK,搞定了,谢谢各位,把memo1.lines.add放到for循环end的后面就O了
    谢谢各位了