delphi 简单正则替换 问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 简单正则替换 问题相关的知识,希望对你有一定的参考价值。

首先声明本人菜鸟。最近在学习delphi接触到了正则,问题是如果一下的代码要替换的是文件比如说是 a.exe 而不是字符串该如何表达呢?谢谢了分不多都拿出来了。。
uses
PerlRegEx; //uses 正则表达式单元

procedure TForm1.FormCreate(Sender: TObject);
var
reg: TPerlRegEx; //声明正则表达式变量
begin
reg := TPerlRegEx.Create(nil); //建立

reg.Subject := 'sSsS'; //这是要替换的源字符串
reg.RegEx := 's'; //这是表达式, 在这里是准备替换掉的子串
reg.Replacement := '◆'; //要替换成的新串
reg.ReplaceAll; //执行全部替换

ShowMessage(reg.Subject); //返回替换结果: ◆S◆S

FreeAndNil(reg); //或 reg.Free
end;
可能是我表达的不清楚。也就是说如何将a.exe 的内容读入内存,再用利正则表达式搜索替换
再写回原文,能实现吗?麻烦大侠给出例子,不胜感激。

参考技术A 要把一个文件的所有内容读入内存是可以的,当然对文件的大小有一定的限制,一般的方法是:
定义一个PCHAR类型的变量(实际上是指针);
检测文件大小,申请相同大小的内存;
打开文件,读入所有内容,关闭文件;

大概代码如下:
var p:pchar; l:integer; f:file;
begin
assign(f,'a.exe');
reset(f,1);
l:=filesize(f);
p:=stralloc(l+1);
blockread(f,p,l);
closefile(f);
end;

请一定粘贴代码,里面reset函数后面是数字1,其余表示长度的变量是l,注意。
参考技术B 正则表达式只能用于字符串本回答被提问者采纳 参考技术C 不好意思,我也是初学,建议你找本书从头到尾学习学习 参考技术D 我是初学者啊 帮不了你

PHP正则匹配与替换的简单例子

PHP正则匹配与替换的简单例子,含一个匹配获取加租字体例子和一个匹配替换超链接的例子。

1、查找匹配 <b> 与 </b> 标签的内容:

<?php
$str = "Name: <b>PHP</b> <br> Title: <b>Programming Language</b>";
preg_match_all ("/<b>(.*)<\/b>/U", $str, $arr);
print_r($arr[0]);
?>

 执行结果如下所示:

Array
(
    [0] => <b>PHP</b>
    [1] => <b>Programming Language</b>
)

匹配“<b></b>” 以及里面的内容,特殊字符前需要加反斜杠转义。

2、匹配去除超链接

$str = preg_replace("/<a[^>]*>|<\/a>/i","",$str);

 匹配超链接标签a,“|”应该是或的意思,[^>]*指任意不是>的字符,或者以>为结尾。

以上是关于delphi 简单正则替换 问题的主要内容,如果未能解决你的问题,请参考以下文章

没有正则表达式的简单搜索和替换

delphi正则表达式

在 Notepad++ 中用 \t 替换正则表达式

正则表达式查找匹配后如何替换?

PHP正则匹配与替换的简单例子

百度云网盘批量改名之正则替换重命名