2012-03-24 14 views
1

Ich versuche eine Regex zu schreiben, um jeden Pfad, der /? enthält, zu bestimmen, ob es eine Abfragezeichenfolge ist oder nicht. /mysite/path/to/whatever/?page=1Python Regex Match Querystring Pfad

so weit ich das

re.match(r'/\?', '/mysite/path/to/whatever/?page=1') dachte passen würde, aber es scheint nicht

Antwort

1

Ihr Problem ist, dass Sie re.match verwenden. Diese Funktion sucht nach Übereinstimmungen am Anfang der Zeichenfolge. Also, entweder ändern Sie Ihre Regexp zu '.*/\?', oder verwenden Sie stattdessen re.search.

+2

're.match' sucht nach Übereinstimmungen * am Anfang der Zeichenfolge *, nicht vollständig Streichhölzer. –

+0

@Petr: Entschuldigung, Sie haben natürlich Recht. Fest. – cha0site

1

Sie passend zu werden, die nicht brauchen:

eine Probe Zeichenfolge dies wäre gelegt werden, regelmäßiger Ausdruck hier. Verwenden Sie einfach den Operator in: '/?' in the_string.


Das Problem ist, dass re.match erst am Anfang der Zeichenfolge aussieht. Sie könnten stattdessen re.search verwenden, wenn Sie die Kraft von REs benötigen.