Warum scheint die nicht-einfangende Gruppe (? :) nicht zu funktionieren?

7
%Vor%

funktioniert nicht

Auf die Bedingung expire= sollte eine Zahl zwischen 1-99 ?

folgen     
Tree 03.03.2011, 12:36
quelle

3 Antworten

11

Ihre Regex hat Leerzeichen, entfernen Sie sie:

%Vor%

Auch der Regex 0[1-9]|[1-9][0-9] stimmt nicht mit 0 überein.

BEARBEITEN:

Basierend auf Ihren Kommentaren möchten Sie eine Zahl von 1-99 nach expire= zulassen, damit Sie Folgendes verwenden können:

%Vor%

oder eine kürzere Version:

%Vor%

Da Ihr Beispiel 0 nach expire= hat, wird es nicht gefunden.

Beachten Sie auch, dass ich die Anker für Anfang und Ende hinzugefügt habe. Ohne sie kann die Regex mit jeder gültigen Teilzeichenfolge der Eingabe übereinstimmen. Beispiel kann expire=99 in der Eingabe expire=999

übereinstimmen     
codaddict 03.03.2011, 12:41
quelle
6

Wenn Sie Leerzeichen in Ihrem Regex verwenden möchten, ohne dass diese tatsächlich mit Leerzeichen übereinstimmen, müssen Sie den Modifikator " x " in Ihrem Regex verwenden. I.e. / foo /x entspricht der Zeichenfolge "foo", während / foo / nur "foo" entspricht.

    
sepp2k 03.03.2011 12:43
quelle
2

Sie haben ein Leerzeichen zwischen dem zweiten \ s * und dem Anfang der nicht erfassenden Gruppe. Versuchen Sie es stattdessen:

%Vor%     
Josh M. 03.03.2011 12:43
quelle

Tags und Links