sList:=TStringList.Create;
  sList2:=TStringList.Create;
  sList.LoadFromFile('replace.txt');//要替换的字符串列  sList2.LoadFromFile('test.txt'); //被替换的文本
  reg:= TPerlRegEx.Create(nil);
  Reg.RegEx:='(?<=\+).*?(?=])';
  reg.Subject:=sList2.Text;
   while reg.MatchAgain do
   begin
    for i := 0 to 22 do //PerRegex好像没有匹配次数,用常量
    begin                          //意图替换每一个匹配的项
     s:=StringReplace(sList2.text,Reg.MatchedExpression,sList.Strings[i],[rfReplaceAll]);
    end;
    end;
   Memo2.Lines.Add(s); //结果只有最后一行被替换
  reg.Free;
  sList.Free;
  sList2.Free;
end;
我想自己弄错了,求大家帮我想个方法。有没表达清楚尽管提出