gpt4 book ai didi

delphi - StringReplace 无法替换字符串的所有实例

转载 作者:行者123 更新时间:2023-12-03 15:16:47 27 4
gpt4 key购买 nike

Dephi 7 帮助手册提到了 StringReplace...

Returns a string with occurrences of one substring replaced by another substring...

If Flags does not include rfReplaceAll, StringReplace only replaces the first occurrence of OldPattern in S. Otherwise, StringReplace replaces all instances of OldPattern with NewPattern.

“否则,StringReplace 将用 NewPattern 替换所有 OldPattern 实例”的语句似乎是一个 BOGUS 语句,因为在下面的示例中,即使在我指示函数“替换'aa'(旧模式)与 'a'(新模式)”!

StringReplace('aaa aaa','aa','a',[rfReplaceAll]);

如果 Delphi 手册是准确的,那么我应该得到“a a”作为最终结果。不幸的是,我得到了“aa aa”。显然,并非所有“OldPattern”('aa')实例都被替换。

这是一个错误,还是仅仅是对该函数的误导/不准确的描述?

最佳答案

您误解了文档。如果用替换项替换搜索字符串实例的操作恰好创建了搜索字符串的另一个实例,则不会再次搜索它。搜索从替换文本的末尾继续。

该函数在输入字符串S中搜索目标字符串的所有实例。输入字符串不会被修改。为了获得您期望的输出,它必须在结果中搜索目标字符串的实例,而不仅仅是在输入中。

想象一下搜索字符串和替换字符串是否相同。该函数可能永远不会返回,因为每次它找到目标并替换它时,它都会找到目标文本的另一个副本。

关于delphi - StringReplace 无法替换字符串的所有实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17606857/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com