5,402
社区成员
发帖
与我相关
我的任务
分享
uses PerlRegEx;
//放入函数或者过程中
var
Regex: TPerlRegEx;
ResultString: string; //替换的结果
begin
Regex := TPerlRegEx.Create(nil);
try
Regex.RegEx := '\*\*R.+\)\*\*$';//需要替换的正则表达式
Regex.Options := [preCaseless]; //忽略大小写
Regex.Subject := SubjectString; //SubjectString是需要替换的字符串
Regex.Replacement := ''; //替换成空字符串,即删除
Regex.ReplaceAll; //全部替换
ResultString := Regex.Subject; //获得替换结果ResultString
finally
Regex.Free; //
end;
end;
uses PerlRegEx;
//放入函数或者过程中
begin
var
Regex: TPerlRegEx;
ResultString: string; //替换的结果
Regex := TPerlRegEx.Create(nil);
try
Regex.RegEx := '\*\*R.+\)\*\*$';//需要替换的正则表达式
Regex.Options := [preCaseless]; //忽略大小写
Regex.Subject := SubjectString; //SubjectString是需要替换的字符串
Regex.Replacement := ''; //替换成空字符串,即删除
Regex.ReplaceAll; //全部替换
ResultString := Regex.Subject; //获得替换结果ResultString
finally
Regex.Free; //
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
reg:TPerlRegEx;
begin
reg.Subject:='大叫放開了擊潰了,漏盡更闌科軟件更快了。**R(sdlfjdslfdlf)**';
reg.RegEx := '\*\*R.+\)\*\*$';
reg.Replacement := '';
reg.ReplaceAll;
ShowMessage(reg.Subject);
Free;
end;
执行的时候就会出现如图的提示:,再继续就会出现:
Access violation at address 00404F10 in module 'Project1.exe'.Write of address 004F003E
请继续指点一二,多谢了!
[/quote]
你reg:TPerlRegEx;未Create
加上
reg := TPerlRegEx.Create(nil);
procedure TForm1.Button1Click(Sender: TObject);
Var
reg:TPerlRegEx;
begin
reg.Subject:='大叫放開了擊潰了,漏盡更闌科軟件更快了。**R(sdlfjdslfdlf)**';
reg.RegEx := '\*\*R.+\)\*\*$';
reg.Replacement := '';
reg.ReplaceAll;
ShowMessage(reg.Subject);
Free;
end;
Regex := TPerlRegEx.Create(nil);
报错,原来写成这样就可以了:
Regex := TPerlRegEx.Create();
我用的是DELPHI2005。\*\*.+\*\*$
uses PerlRegEx;
begin
with TPerlRegEx.Create(nil) do
begin
Subject := '1,发了点击科技管理机构。**R1(10/8)**'; // 要替换的源文本
RegEx := '\*\*R.+\)\*\*$'; // 正则表达式
Replacement := ''; // 替换为空字符
ReplaceAll; // 替换全部
ShowMessage(Subject);
Free;
end;
end;