[user:~]$ ./regtst
Name of html-file: tst.html
An unhandled exception occurred at $0000000000430B5A:
ERegExpr: TRegExpr compile: unrecognized modifier (pos 22)
Hi, I'm not a expert in RegExpresion. But If I put the mouse over the line 23, lazarus gives a warning about a error in expression.Hmm, i have no warnings
See attach image
program project1;
{$mode objfpc}{$H+}
uses {$IFDEF UNIX} {$IFDEF UseCThreads}
cthreads, {$ENDIF} {$ENDIF}
Classes { you can add units after this },
RegExpr;
var
txt, buf, filename: string;
fileHtml: Textfile;
reg: TRegExpr;
begin
//write('Name of html-file: ');
//read(filename);
//AssignFile(fileHtml, filename);
//Reset(fileHtml);
//txt:='';
//while not Eof(fileHtml) do
//begin
// Readln(fileHtml, buf);
// txt:=txt+buf;
//end;
txt := '<html> <head> <title>Esta es mi primera pagina</title> </head> <body> <h1>Esto es un encabezado</h1> <p>Y esto es un parrafo, donde podemos escribir todo el rollo que se nos ocurra.</body></html>';
reg := TRegExpr.Create('(<img.+?>)(?![\s\S]*\1)');
if (reg.Exec(txt)) then
repeat
writeln(reg.Match[0]);
until not reg.ExecNext;
end.
Can you help me to correct this regex?
does it find without repetitions?
program project1; uses Classes, RegExpr; var filename:string; sl: TStringList; reg:TRegExpr; begin write('Name of html-file: '); read(filename); sl := TStringList.Create; sl.LoadFromFile(filename); reg := TRegExpr.Create('<img.*?>'); if (reg.Exec(sl.Text)) then repeat writeln(reg.Match[0]); until not reg.ExecNext; sl.Free; end.
0: <img src="/static/images/footer/poweredby_mediawiki_88x31.png
1: <img
2: src="
3: /static/images/footer/poweredby_mediawiki_88x31.png