Eigentlich bin ich ja der Letzte, der sowas vorschlagen würde, aber nach dem Vortrag von Daniel bei der CodeRage DE:
Delphi-Quellcode:
uses
System.RegularExpressions;
function ExtractCounter(const Template, Value: string): Integer;
var
pattern: string;
begin
pattern := Template.Replace('%counter%', '([\d]+)', [rfIgnoreCase]).Replace('%year%', '(?:[\d]{4})', [rfIgnoreCase]);
result := TRegEx.Match(Value, pattern).Groups[1].Value.ToInteger;
end;