实际上问题是:在文本文件中有这样的行:
Delphi1Prolanguage
Delphi2Prolang
Delphi3Proln
Delphi1
Delphi2
Delphi3
如何从此列表中仅删除单词,仅删除整个单词。例如,我需要找到所有有短语Delphi1、Delphi2、Delphi3 的行,但如果只遇到纯单词,则忽略它们。
结果应该是:
Delphi1Prolanguage
Delphi2Prolang
Delphi3Proln
我尝试使用 Pos 来解决这个问题。这是我试图做的。但是通过这种方法,这些和那些行都会进入结果。
代码说明:
Var
Frd1: TextFile // Текстовый файл
RS: String; // Строка
mas1 Array of String; // Массив
Fd: Boolean;
Ну и сам кусочек кода обработки....
while not EoF(Frd1) do
begin
// Читаем строку из файла
ReadLn(Frd1, Rs);
// Ищем вхождение фильтрующей строки в массиве
for i:=Low(mas1) to High(mas1) do
begin
Fd := (Pos(mas1[i], Rs) > 0);
// Записываем строку в файл
if Fd then
WriteLn(Fz1, Rs);
end;
end;
试试 TRegex.Replace(RS, '\bDelphi1\b', '')
(不要忘记在使用中包含正则表达式)
一般来说,学习 RegEx - 它会在大多数编程语言中派上用场,用于快速搜索-替换-字符串解析操作。