在JS中有如下语句
“str = str.replace(/<img([^>]*src[^>]*)>/ig, function($1, $2) {return imgtag($2);});”
因为在正则表达式中replace方法的新文本里可以含$1、$2这样的子匹配标记,所以上面的JS语句里,直接用函数运算了该子匹配并得出结果,用以替换原文本。请问在DELPHI中该如何实现上面的代码。已经在DELPHI中注册了VBScript_RegExp_55_TLB 用做正则运算。
“str = str.replace(/<img([^>]*src[^>]*)>/ig, function($1, $2) {return imgtag($2);});”
因为在正则表达式中replace方法的新文本里可以含$1、$2这样的子匹配标记,所以上面的JS语句里,直接用函数运算了该子匹配并得出结果,用以替换原文本。请问在DELPHI中该如何实现上面的代码。已经在DELPHI中注册了VBScript_RegExp_55_TLB 用做正则运算。
var
vRegExp, vMatch, vMatches: OleVariant;
I: Integer;
begin
vRegExp := CreateOleObject('VBScript.RegExp'); // 创建正值对象
vRegExp.Pattern := '<img([^>]*src[^>]*)>'; // 样板表达式
vRegExp.IgnoreCase := True; // 忽略大小写
vRegExp.Global := True; // 全局适用
Caption := vRegExp.Replace('<img src="http://www.csdn.net/log.jpg">',
'function($1, $2) {return imgtag($2);});');
end;
Caption := vRegExp.Replace('<img src="http://www.csdn.net/log.jpg">',
'function($1, $2) {return imgtag($2);});');其中“function($1, $2) {return imgtag($2);}”是段JS脚本,在DELPHI里无法执行的。
使用和其他语言种差不多的
DELPHI语言没有JS那样灵活,所以不会用DELPHI来表达这样的语句。