python regex findall und multiline

8

python 2.6.8

%Vor%

Warum gibt es einen Unterschied zwischen der Verwendung von MULTILINE Flag in findall?

    
kmad 14.08.2012, 18:43
quelle

2 Antworten

15

Beim Aufrufen der findall() -Methode für ein Regex-Objekt ist der zweite Parameter nicht das flags -Argument (weil das bereits beim Kompilieren der Regex verwendet wurde), sondern das pos -Argument, in dem die Regex-Engine angegeben wird Zeigen Sie in die Zeichenfolge, um den Abgleich zu starten.

re.MULTILINE ist nur eine ganze Zahl (das ist 8 ).

Siehe die Dokumente .

    
Tim Pietzcker 14.08.2012, 18:47
quelle
5

Weil die Methode findall des kompilierten Objekts ptrn den Parameter MULTILINE nicht akzeptiert. Es benötigt ein Argument position .

Siehe hier: Ссылка

Der MULTILINE-Spezifizierer wird nur verwendet, wenn Sie re.compile() aufrufen. Das resultierende ptrn -Objekt weiß bereits, dass es MULTILINE ist.

    
alan 14.08.2012 18:49
quelle

Tags und Links