Erkennen von Zahlen in der Zeichenfolge

7
%Vor%

Gibt es eine sauberere Möglichkeit, Zahlen in einer Zeichenfolge in Python zu erkennen?

    
James 11.07.2011, 11:01
quelle

7 Antworten

12

Was ist damit?

%Vor%     
Marcin 11.07.2011, 11:05
quelle
8
%Vor%

BEARBEITEN:

%Vor%

Karte dauerte 1 Sekunde (auf alten Python) Imap war sofort da Imap einen Generator zurückgibt. Beachten Sie, dass in der realen Welt die Wahrscheinlichkeit höher ist, dass die Zahl am Ende des Dateinamens steht.

    
robert king 11.07.2011 11:10
quelle
4
%Vor%

BEARBEITEN:

Und nur für die Gründlichkeit:

any (c.isdigit ()):

%Vor%

any (c in Ziffern):

%Vor%

re.search (1 oder mehr Ziffern):

%Vor%

re.search (Stopp nach einer Ziffer):

%Vor%

re.match (nicht gierig):

%Vor%

re.match (gierig):

%Vor%

any (Karte ()):

%Vor%

any (imap ()):

%Vor%

Im Allgemeinen liefen die weniger komplexen Regexps schneller. c.isdigit() und c in digits sind fast gleichwertig. re.match ist etwas schneller als re.search . map() ist die langsamste Lösung, aber imap() war am schnellsten (aber innerhalb des Rundungsfehlers von any(c.isdigit) und any(c in digits) .

    
Kirk Strauser 11.07.2011 11:13
quelle
3

Sie können einen regulären Ausdruck verwenden:

%Vor%     
Felix Kling 11.07.2011 11:05
quelle
1
%Vor%     
Steven Rumbalski 11.07.2011 14:18
quelle
0

Wenn Sie wissen möchten, wie groß der Unterschied ist, können Sie re ()

verwenden
%Vor%
    
mrbox 11.07.2011 11:11
quelle
0

Um Zeichen in den Zahlen zu erkennen, verwenden Sie den Operator ? .

%Vor%     
Darshan Chaudhary 06.10.2015 07:34
quelle

Tags und Links