Memo1.tex:=HK1 NI430423196911135678/P1
HK1 NI430423196911135631/P3
HK1 NI430423196911135623/P2
HK1 NI430423196911135616/P4procedure TForm1.Button1Click(Sender: TObject);
Var
myExpr: TRegExpr;
begin
myExpr := TRegExpr.Create;
myExpr.Expression := 'HK1.*?P(.*?)';
if myExpr.Exec(Memo1.Text) then
repeat
memo2.Lines.Add(myExpr.Match[1]);
until not MyExpr.ExecNext;
end;
为什么Memo2里面没有反应.哪步出错了??
HK1 NI430423196911135631/P3
HK1 NI430423196911135623/P2
HK1 NI430423196911135616/P4procedure TForm1.Button1Click(Sender: TObject);
Var
myExpr: TRegExpr;
begin
myExpr := TRegExpr.Create;
myExpr.Expression := 'HK1.*?P(.*?)';
if myExpr.Exec(Memo1.Text) then
repeat
memo2.Lines.Add(myExpr.Match[1]);
until not MyExpr.ExecNext;
end;
为什么Memo2里面没有反应.哪步出错了??
用这个正则试试
'HK1 NI([^P]*)P\d'
...
myExpr.Expression := 'HK1 NI([0-9]+)(/P[0-9]?)';
...
HK1 NI430423196911135631/P3
HK1 NI430423196911135623/P2
HK1 NI430423196911135616/P4 procedure TForm1.Button1Click(Sender: TObject);
Var
myExpr: TRegExpr;
begin
myExpr := TRegExpr.Create;
myExpr.Expression := 'HK1 NI([0-9]+)(/P[0-9]?)';
if myExpr.Exec(Memo1.Text) then
repeat
memo2.Lines.Add(myExpr.Match[1]);
until not MyExpr.ExecNext;
end;
这样只能显示一条..应该怎么样才能显示全部的??