2017-01-02 3 views
-1

Ich habe zwei Variablen PfadVerständnis in Python Spiel

var1 = u'Manish/testfolder/.*txt' 
var2 = u'Manish/testfolder/test.txt.abc' 

in Python zu speichern, wenn ich tippe re.match(var1 , var2)

es yeilds wahr kann jemand erklären, wie man es wahr ist die Bewertung und was ich soll ich tun, so dass es falsch zurückgibt.

+0

Ich habe es nicht benutzt, aber sehen, dass seine Regex vergleichen dann die beiden Aussagen sind die gleichen. ". *" entspricht allen Zeichen. – Ephreal

+0

Ich nehme an, Sie erwarten, dass es falsch zurückgibt, da Ihre Zeichenfolge nicht mit '.txt' endet? In diesem Fall fehlt das Ende des String-Ankers '$'. Du könntest 're.fullmatch' auch verwenden, wenn du Python 3 verwendest. –

+0

Ich nehme an, du fragst das, weil du erwartet hast, dass es nicht passt, weil var2 mit .txt.abc statt nur mit txt endet? Wenn dies der Fall ist, liegt das daran, dass Sie nicht das Ende der Zeichenfolge special char $ angeben – danielfranca

Antwort

2

Ihr Regex ist in var2 enthalten.

Wenn Sie ein Ende für Ihre regex explizit gesetzt, es passend ist nicht mehr:

var1 = u'Manish/testfolder/.*txt$' 
1

Wie erwähnt here und herere.match() prüft, ob ein Spiel erst am Anfang des Strings.