2016-09-26 3 views
1

Ich bin neu in Stackoverflow und ich habe eine einfache Frage: Ich muss eine Regex erstellen, um ein benutzerdefiniertes Muster in Zeichenfolge übereinzustimmen. Ich möchte einen regulären Ausdruck erstellen, um diese URL zu erkennen:PHP benutzerdefinierte Regex in URL

/post-title-92581_1.html 

where $match[0] = 92581 and $match[1] = 1 

ich diese Regex erstellt ((\-[0-9]+)_([1-2]{1}).html) funktioniert gut, aber das zurückgibt:

$match[0] // -92581 
$match[1] // 1 

wenn i String /post-title-925-81_1.html i

$match[0] // -81 
$match[1] // 1 
erhalten ändern

Ich möchte nur die FIRST MATCH(-925) ohne "-" bekommen .

Antwort

0

gebe - außerhalb der Klammern ...

-([0-9]+)_([1-2]{1}).html 

Alles innerhalb der Klammern wird als Übereinstimmung!

+0

Diese Arbeit worderful, genau das brauchte ich, danke. – elaineee

+0

Dies gibt Ihnen 81 auf der zweiten Fall obwohl, während ich dachte, Sie wollten 925. – JDoe

1

Eine Lösung wäre, die RegEx aufzuspalten:

Eine erste Regex, die für die "925" (- (\ d +) [-_]) sucht,

Eine zweite regex, die für sucht der letzte Teil (_ ([1-2] {1}). html $).

+0

Danke für Ihre Antwort, ich schätze es, jetzt verstehe ich besser Reguläre Ausdrücke, es hat für mich funktioniert, danke !. – elaineee