如何更换" ' " "'" Stringreplace的HTML字符

时间:2014-11-24 18:12:01

标签: html string delphi apostrophe

我使用代码从页面获取HTML并保存它的字符串 但这些字符串有时带有'作为'字符

我试图用实际的'角色替换它,它似乎不起作用 我试过这行找到字符串但没有结果

  StringReplace(myString, ''', char(39), [rfReplaceAll]);
  StringReplace(myString, char(39), '*', [rfReplaceAll]);

  aPos := Pos(myString, char(39));
  aPos := Pos(myString, ''');
  aPos := Pos(myString, '&');
  aPos := Pos(myString, '#');
  aPos := Pos(myString, '039');

Apos永远不会> 0

  if aPos > 0 then
  begin
    // replace the string
  end;

2 个答案:

答案 0 :(得分:4)

StringReplace无法就地发挥作用。您必须将函数的结果分配给(另一个)字符串:

myOtherString := StringReplace(myString, '&#039', '''', [rfReplaceAll]);

试试看,您会发现myOtherString包含正确的格式。当然你也可以这样做:

myString := StringReplace(myString, '&#039', '''', [rfReplaceAll]);

修改

IMO,函数Pos更容易记住:

function Pos(const Needle, Haystack: string): Integer;

因此,如果您交换参数,它应该可以正常工作。

答案 1 :(得分:3)

StringReplace是一个返回新值的函数。你忽略了这个新价值。你需要:

myString := StringReplace(myString, ...);
....

问题的其他部分涉及Pos的使用。 Pos的第一个参数是您在第二个参数中搜索的子字符串。因此,您的参数的顺序为Pos