2016-05-05 4 views
-1
([^/]+)/(thumb)\.(jpg)$ 
([^/]+/)?(thumb)\.(jpg)$ 

Ich weiß, die ? bedeutet Null oder ein Mal. Ist das / vor thumb bedeutet, dass es einmal vorkommt?Würden diese Regexes zu verschiedenen Strings passen?

+0

Ja, sie können verschiedene Eingänge zuordnen. '/' ist nur ein wörtlicher Schrägstrich – anubhava

+0

regexr.com sagt der zweite ist kaputt. Fehler: Unerweiterter Schrägstrich. –

Antwort

1

Ja, sie passen zu verschiedenen Dingen.

Zum Beispiel dieses:

([^/]+/)?(thumb)\.(jpg)$ 

entspricht die Zeichenfolge: thumb.jpg

Die ? macht die ganze subexpression optional.

Der andere nicht.

([^/]+)/(thumb)\.(jpg)$ 
    ^

Wie Sie sehen können, ist die / statisch, so muss sie vorhanden sein.

Auch es muss mindestens ein nicht / Zeichen vor ihm sein. Das ist, was die + bedeutet.

1

Ja, der erste Ausdruck erfordert die / in der Zeichenfolge und mindestens 1 Zeichen vor es anders als /.

Im zweiten Ausdruck ist es nicht erforderlich. Zum Beispiel würde thumb.jpg dem zweiten aber nicht dem ersten entsprechen.

Schließlich stimmt jede Zeichenfolge, die mit dem ersten Ausdruck übereinstimmt, auch mit der zweiten überein.

Verwandte Themen