我想知道是否可以从字符串中删除特定的html标记。
我想删除仅以per-machine
开头的代码。但必须删除所有<img>
内容。这是因为我需要从字符串中删除图像。
我已经尝试调整这个程序:
<img ...>
这种方式(改变两行):
function StripHTML(S: string): string;
var
TagBegin, TagEnd, TagLength: integer;
begin
TagBegin := Pos( '<', S); // search position of first <
while (TagBegin > 0) do begin // while there is a < in S
TagEnd := Pos('>', S); // find the matching >
TagLength := TagEnd - TagBegin + 1;
Delete(S, TagBegin, TagLength); // delete the tag
TagBegin:= Pos( '<', S); // search for next <
end;
Result := S; // give the result
end;
但代码处于一个牢不可破的循环中。 :(
答案 0 :(得分:1)
我应用了@Abelisto的提示,现在正在工作。 这是代码(我必须引用原始代码在这里找到: http://www.festra.com/eng/snip12.htm)
function StripHTML(S: string): string;
var
TagBegin, TagEnd : integer;
begin
TagBegin := Pos( '<img', S); // search position of first <
while (TagBegin > 0) do begin // while there is a < in S
TagEnd := PosEx('>', S, TagBegin); // find the matching >
Delete(S, TagBegin, (TagEnd - TagBegin) + 1); // delete the tag
TagBegin:= Pos( '<img', S); // search for next <
end;
Result := S; // give the result
end;