2017-09-05 3 views
0

Die Eingabe genau wie unten:Need Element zu finden, kurz bevor Regex Element über Python

"dinem-5554\tlee"

Ich brauche Regex auszuführen, um den Wert vor \tlee) zu erhalten, das heißt, dinem-5554. Das habe ich ausprobiert:

m = re.findall(r'(\tlee)',a)[0] 
if m: 
    print m 
else: 
    print "none" 
+0

versuchen 're.findall (" (. +?) \ Tlee ", a)' –

+0

Definieren Sie "den Wert vor". Was sollte in der Saite '" dimem-5554 lee "passen? "dinem-5554"? "5554"? "4"? Das Leerzeichen? Etwas anderes? – Kevin

+0

Sie können auch versuchen, '(. *) \ Tlee' und beziehen Sie sich auf Capture-Gruppe' $ 1' – ctwheels

Antwort

1

Sie brauchen keine Regex zu verwenden. Verwenden Sie das eingebaute split method of str.

my_string = "dinem-5554\tlee" 
groups = my_string.split('\tlee', 1) 

if len(groups) > 0: 
    print groups[0] 
else: 
    print 'none' 

Oder wenn Sie bedeuten in der Tab-Zeichen aufzuspalten:

groups = my_string.split('\t', 1) 

Beachten Sie, dass das zweite Argument die Anzahl der Male bestimmt aufzuspalten. Wenn my_string mehrere Tabulatorzeichen enthielt, wurde es nur beim ersten geteilt.

+0

yeah. Regex hypnotisieren uns oft, sie zu benutzen ... –