Ahoi,
Hi,
»» $pattern='/[0-9]{2}.200[8|9]/';
Soll wirklich nach der 200 eine 8, eine 9 oder ein Pipe-Zeichen stehen dürfen?
Nein (;-).
»» $pattern='/[0-9]{2}.20[08|09]/';
nach der 20 darf ein 0, eine 8, ein Pipe oder eine 9 kommen.
s.o.
»» Warum wird die "9" beim zweiten Beispiel abgeschnitten?
Weil Du eine Zeichenklasse verwendest, diese matcht genau ein Zeichen.
(?:08|09) entspricht wohl in etwa dem, was Du willst.
Wobei 0(?:8|9) bzw 0[89] effizienter sind, weil weniger Backtracking stattfinden muß.
Ja, es kommt aber noch 2010 dazu, also 20(?:08|09|10) - das Fragezeichen heißt, dass das eins der folgenden Vorkommen muss? 20(09|10) würde nicht gehen?
Dank und Gruß,