我需要 Delphi 代码从文本文件中删除一个子字符串。问题是,子字符串不是特定的。我们只知道第一个和最后一个字符。
例如,我们删除'['和']'之间的任何字符:
使用前:
[P][strong]Stack Overflow[/strong]是一个非常有用的论坛,可以获得知识。
之后:
Stack Overflow是一个非常有用的论坛,可以获得知识。
我已经读过Find and Replace Text in a Large TextFile (Delphi XE5)了,它很有帮助,但是它使用了一个固定的子字符串,我仍然困惑如何像我想要的那样修改它。
2条答案
按热度按时间eeq64g8w1#
对文件进行文本替换的唯一方法是读取文件,进行替换并再次将其写入。没有内置的方法可以简单地调用
ReplaceInFile(,,)
或其任何衍生物。
因此,一个粗略的方法(假设是现代的 Delphi 版本)是:
然后你这样调用它:
其中
<Put your code here>
是删除[]区域的代码。当然,这可以通过各种方式进行优化,但我希望您能够了解它的要点。
scyqe7ek2#
作为一个正则表达式的忠实粉丝,我建议你试试下面的代码:
这个技巧基本上都是由这个正则表达式完成的:
它基本上找到你需要的第一个字符(在本例中为
[
),在右括号的第一个示例处停止(在本例中为]
),并获取这2个字符加上中间的所有字符(通过.*
)。不要忘记放?
,否则右括号将是你需要的字符串的最后一个示例!用 Delphi 制作11.你可以在你拥有的或者喜欢的每个库中使用正则表达式!