一般功能:
Function TagStripper(inString: String; beginTag : String; endTag: String): String;
Var
index : Integer;
startTag : Integer;
closeTag : Integer;
Begin
index := 1;
While (index > 0) Do
Begin
closeTag := PosEx(endTag, inString, index);
startTag := PosEx(beginTag, inString, index);
If startTag = 0 Then
startTag := closeTag;
index := closeTag;
If (closeTag <= startTag) And (index > 0) Then
Delete(instring, closeTag, Length(endTag))
Else
If closeTag > 0 Then
index := index + Length(endTag);
End;
Result := inString;
End;
本质上,它寻找一个开始和结束标签。如果结束标签出现在开始标签之前,则会将其删除。然后,搜索的起点(索引)从找到结束标记的位置重新定位。您的示例中的 beginTag 和 endTag 将是
'<a' and '</a>'.
运行时的结果是:
Lorem ipsum dolor sit amet, consectetur adipiscing <a
href="hxxp://www.youtube.com/watch?v=VIDEO_1">hxxp://www.youtube.com/watch?v=VIDEO_1</a>
Sed lacinia purus turpis. Curabitur in nisi urna, vitae aliquet
Vestibulum ante ipsum primis in faucibus orci luctus
hxxp://www.youtube.com/watch?v=VIDEO_2