我使用代码从页面获取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;
答案 0 :(得分:4)
StringReplace
无法就地发挥作用。您必须将函数的结果分配给(另一个)字符串:
myOtherString := StringReplace(myString, ''', '''', [rfReplaceAll]);
试试看,您会发现myOtherString
包含正确的格式。当然你也可以这样做:
myString := StringReplace(myString, ''', '''', [rfReplaceAll]);
IMO,函数Pos
更容易记住:
function Pos(const Needle, Haystack: string): Integer;
因此,如果您交换参数,它应该可以正常工作。
答案 1 :(得分:3)
StringReplace
是一个返回新值的函数。你忽略了这个新价值。你需要:
myString := StringReplace(myString, ...);
....
问题的其他部分涉及Pos
的使用。 Pos
的第一个参数是您在第二个参数中搜索的子字符串。因此,您的参数的顺序为Pos
。