preg_match (reg. ausdruck gesucht)

Reguläre Ausdrücke… damit mach ich mich etwas schwer.
Ich möchte einen String durchsuchen.

1 = „test1_hallo-welt“
2 = „test37_wie-geht-es-dir“
3 = „test_dick-und-doof-sind-toll“
4 = „test2-blabla“
5 = „htest2_huhu und so weiter…“
6 = „anfangirgendwas-test44_endeirgendwas“

Möchte nach „test“ (am anfang des strings) gefolgt mit einer Nummer (wie groß die Nummer ist, ist egal), danach noch ein Unterstrich „_“ suchen. Alle Zeichen nach dem „_“ sind egal.

Also String Nummer 1 und 2 sollten nur gefunden werden. Bei Nr. 3 fehlt ja eine Nummer und bei 4 der Unterstrich. Bei Nummer 5 und 6 ist ein „test[nummer]_“ nicht am anfang.

Kann mir da jemand mit dem preg_match helfen?

Hi,

Möchte nach „test“ (am anfang des strings)

^test

gefolgt mit einer Nummer (wie groß die Nummer ist, ist egal),

\d+

danach noch ein Unterstrich „_“ suchen.

_

Alle Zeichen nach dem „_“ sind egal.

.*

Das alles natürlich hintereinander.

Gruß
Ingo

Hab das jetzt so:

if(preg\_match("^test\d+\_.\*",$string)==1)
{
}

geht aber nicht. Bekomme als Fehler:
No ending delimiter ‚^‘

Hi,

if(preg_match("^test\d+_.*",$string)==1)
{
}

geht aber nicht. Bekomme als Fehler:
No ending delimiter ‚^‘

logisch, weil eine RegEx von einem Delimiter eingeschlossen wird. Da Du dies vergessen hast, wird das erste Zeichen der RegEx als Delimiter betrachtet und am Ende natürlich vermisst.
Als Delimiter wählt man ein Zeichen, welches in der RexEx selbst nicht vorkommt, oft „/“, ich bevorzuge „#“.

Gruß
Ingo

Ich habe das jetzt so gemacht und es scheint zu gehen.

if(preg\_match('/^test\d+\_.\*/',$string)==1)
{
}

Also vielen Dank

übrigens findet sich sowas (zwar in english , aber das ist ja allgemein unsere 2. sprache)
http://www.php.net/manual/de/regexp.reference.delimi…