Object Pascal 的自由軟體實作 Free Pascal 內建 Regular Expression 的支援,實作的部份在 RegExpr unit。
下面是使用 Free Pascal 解 1-9 位數不重複印出來的練習問題:
{$ifdef FPC} {$mode delphi} {$endif}
{$ifdef MSWINDOWS} {$apptype CONSOLE} {$endif}
program MyNumber;
uses sysutils, math, RegExpr;
var
num : integer;
max : longint;
index: longint;
numstr: string;
RegexObj: TRegExpr;
begin
Write('Please give a number: ');
ReadLn(num);
if (num < 1) or (num > 9) then
begin
WriteLn('Out of range.');
Exit;
end;
max := round(intpower(10.0, num)) - 1;
RegexObj := TRegExpr.Create;
RegexObj.Expression := '1.*1|2.*2|3.*3|4.*4|5.*5|6.*6|7.*7|8.*8|9.*9|0.*0';
try
for index := 1 to max do
begin
numstr := IntToStr(index);
if RegexObj.Exec(numstr) then
continue
else
WriteLn(numstr);
end;
finally
RegexObj.Free;
end;
end.
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。