MudGuard: preg_match - 08 oder 09 statt 8 oder 9

Beitrag lesen

Hi,

$pattern='/[0-9]{2}.200[8|9]/';

Soll wirklich nach der 200 eine 8, eine 9 oder ein Pipe-Zeichen stehen dürfen?

$pattern='/[0-9]{2}.20[08|09]/';

nach der 20 darf ein 0, eine 8, ein Pipe oder eine 9 kommen.

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ß.

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.