seth: Regulärer Ausdruck

Beitrag lesen

gudn tach!

ich verzweifle grade an einem reglären Ausdruck.
Stark vereinfacht sieht der reguläre Ausdruck so aus:
/([\w\d]){3,5}aaa([\w\d]){3,5}/i

den kann man noch vereinfachen, denn die zeichenklasse \w umfasst bereits die zeichenklasse \d.

/\w{3,5}aaa\w{3,5}/i

beachte aber, dass \w locale-abhaengig ist, siehe php-manual, also nicht notwendig immer dasselbe bedeutet. wenn du nicht sicher sein kannst, ob die 'locale' einstellungen passen und ob sie konstant bleiben, dann gibt die elemente der zeichenklassen besser explizit an, z.b. statt \w z.b. [a-zA-Z0-9_].

[...] ich möchte aber, das er nur dann was findet wenn der erste Musterteil und der zweite gleich sind.
ab123aaaab123 soll matchen, ab123aaaxyz123 nicht.

das zugehoerige stichwort ist, wie dedlfix bereits andeutete "back-reference" (weitere begriffe waeren "capture groups" oder "capture buffers"). dem php-manual fehlen imho ein paar uebersichtlich angeordnete hilfreiche beispiele, deswegen verweise ich mal zusaetzlich aufs selfhtml-wiki (dort insb. die tabelle), auch wenn sich jener artikel eigentlich auf perl bezieht (macht aber nix, php und perl verhalten sich hierbei hinreichend aehnlich).

prost
seth