Delphi用回调替换字符串



在JavaScript中,可以使用正则表达式将匹配项作为参数的回调来替换字符串。

function replacer(match, p1, p2, p3, offset, string){
  // p1 is nondigits, p2 digits, and p3 non-alphanumerics
  return [p1, p2, p3].join(' - ');
};
newString = "abc12345#$*%".replace(/([^d]*)(d*)([^w]*)/, replacer);

在Delphi中有这样的方法吗?我试着搜索,但没有找到任何有用的东西。

Delphi的TPerlRegEx类有一个OnReplace事件处理程序,每次替换都由ReplaceReplaceAll方法调用。您可以使用此事件处理程序来实现与在JavaScript中使用回调相同的效果。

此外,TRegEx.Replace方法具有采用TMatchEvaluator参数的重载。此类型是一个函数引用,与JavaScript中一样用作回调。

最新更新