2016-03-30 4 views
0

übereinstimmt Ich möchte Zahlen von Zeichenfolge in Python mit re Modul trennen, aber ich konnte nicht.Zeichenfolge, die mit Re in Python

Ich habe versucht, den folgenden Code:

import re 
t='0.555/0.980/2.563' 
r=re.search((".*")+re.escape('/'),t).group() 
print "first number " ,r 

ich diese bekam:

0.555/0.980/ 

Wie konnte ich die ersten und letzten Zahlen zu bekommen?

Dank

+0

Warum nicht 't.split ("/")'? – zondo

Antwort

0

Sie wollen etwas verwenden:

result = re.match(r'(\d*\.?\d+)/.+/(\d*\.?\d+)', '0.555/0.980/2.563') 

Dann result.group(1) und result.group(2) wird dir geben, was Sie wollen. Der Weg, dies zu sehen, ist, dass die () die spezifischen Gruppen definieren, die Sie wollen. Das Zeug in der () sagt Ihnen, welche Art von Muster Sie wollen - in diesem Fall ist die Regex abgestimmt, um alle Dezimalzahlen zu erfassen, die dort angezeigt werden.

Aber @zondo hat Recht: Sie können mit viel besseres Verhalten bekommen. Dann geben result[0] und result[-1] Ihnen die ersten und letzten Splits entsprechend.

0

Sie können re.split verwenden, um Zahlen zu teilen, vorausgesetzt, dass Ihr Zeichenfolgenformat unverändert bleibt.

import re 

dataString = "0.555/0.980/2.563" 

numbers = [float(n) for n in re.split("/", dataString, re.DOTALL)] 

print(numbers) 

Dies wird Zahlen in Array extrahieren

[0.555, 0.98, 2.563] 

Wenn Sie jede Nummer einzeln drucken haben, einfach Liste iterieren.

for n in numbers: 
    print(n) 

Sie erhalten:

0.555 
0.98 
2.563 
+0

Danke, es funktioniert – Anees