2016-11-13 134 views
0

我有串,進行了這樣的刪除字符串中複製文本

str := 'Hi there My name is Vlark and this is my images <img src=""><img src=""> But This images need to be controlled <img src=""><img src=""><img src=""><img src="">'; 

這個字符串一些文本有6個圖片標籤<img我想在這個標籤控制,所以如果該字符串有3個以上的圖像標籤離開前三個和刪除其餘的圖像標籤。我不能找出我怎麼能做到這一點的編碼

回答

4

策略:

  • 查找位置和長度完全封閉標籤:<img>
  • 如果算上大於3,刪除標籤。

function RemoveExcessiveTags(const s: String): String; 
var 
    tags,cP,p : Integer; 
begin 
    tags := 0; 
    cP := 1; 
    Result := s; 
    repeat 
    cP := Pos('<img',Result,cP); 
    if (cP > 0) then begin 
    // Find end of tag 
     p := Pos('>',Result,cP+4); 
     if (p > 0) then begin 
     Inc(tags); 
     if (tags > 3) then begin // Delete tag if more than 3 tags 
      Delete(Result,cP,p-cP+1); 
     end 
     else 
      cP := p+1; // Next search start position 
     end 
     else 
     cP := 0; // We reached end of string, abort search 
    end; 
    until (cP = 0); 
end;