mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 17:47:56 +02:00
44 lines
850 B
ObjectPascal
44 lines
850 B
ObjectPascal
|
|
program project1;
|
|
// Run the following to cause an access violation
|
|
//
|
|
// ./project1 'as.*0' 'ascii_lf1'
|
|
//
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
uses
|
|
regex,
|
|
SysUtils;
|
|
|
|
var
|
|
re : TRegexEngine;
|
|
aErrorPos : integer;
|
|
aErrorCode: TRegexError;
|
|
MatchPos : integer;
|
|
Offset : integer;
|
|
s1,s2 : string;
|
|
begin
|
|
s1:='as.*0';
|
|
s2:='ascii_lf1';
|
|
try
|
|
WriteLn('Regex: Trim(s1) = >>'+Trim(s1)+'<<');
|
|
WriteLn('Test: Trim(s2) = >>'+Trim(s2)+'<<');
|
|
re := TRegexEngine.Create(Trim(s1));
|
|
if re.Parse(aErrorPos,aErrorCode) then begin
|
|
Offset := 1;
|
|
if re.MatchString(s2,MatchPos,Offset) then begin
|
|
WriteLn('Match');
|
|
end else begin
|
|
WriteLn('No Match');
|
|
end;
|
|
end else begin
|
|
WriteLn('Parse Failed');
|
|
end;
|
|
except
|
|
on E : Exception do begin
|
|
WriteLn('Exception: '+E.Message);
|
|
end;
|
|
end;
|
|
end.
|