20 Stimmen

wie man Leerzeichen und alphanumerische Zeichen in Python abgleicht

Ich versuche, eine Zeichenfolge zu finden, die ein Leerzeichen in der Mitte und alphanumerische Zeichen wie folgt enthält:

test = django cms

Ich habe den Abgleich nach folgendem Muster versucht:

patter = '\s'

leider, dass nur Leerzeichen übereinstimmt, so dass, wenn eine Übereinstimmung mit der Suchmethode in der re-Objekt gefunden wird, gibt es nur die Leerzeichen, aber nicht die gesamte Zeichenfolge, wie kann ich das Muster ändern, so dass es die gesamte Zeichenfolge zurück, wenn eine Übereinstimmung gefunden?

44voto

Hugh Bothwell Punkte 52831
import re

test = "this matches"
match = re.match('(\w+\s\w+)', test)
print match.groups()

gibt zurück.

('this matches',)

0 Stimmen

(1) überflüssige Klammern (2) der OP verwendet search() no match()

4 Stimmen

@John Machin: (1) Meiner Meinung nach betonen die Klammern, dass die gesamte Gruppe zurückgegeben wird; (2) es wird genauso gut mit re.search() funktionieren.

1 Stimmen

Die obige Regex wird funktionieren, wenn es genau ein Leerzeichen in der Phrase, aber ich würde vorschlagen, es zu ändern, um eine beliebige Menge von Leerzeichen-getrennte Wörter übereinstimmen: match = re.match("([\w|\s]+)", test)

2voto

Daniil Mashkin Punkte 4035

Falls mehr als ein Leerzeichen vorhanden ist, verwenden Sie die folgende Regexp:

'([\w\s]+)'

Beispiel

In [3]: import re

In [4]: test = "this matches and this"
   ...: match = re.match('([\w\s]+)', test)
   ...: print match.groups()
   ...: 
('this matches and this',)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X