web-dev-qa-db-fra.com

Comment puis-je vérifier une nouvelle ligne dans une chaîne dans Python 3.x?

Comment vérifier une nouvelle ligne dans une chaîne?

Est-ce que python3.x a quelque chose de similaire au fonctionnement normal de Java où if (x=='*\n') aurait fonctionné?

11
change

Si vous voulez juste vérifier si une nouvelle ligne (\n) est présente, vous pouvez simplement utiliser l'opérateur in de Python pour vérifier si c'est dans une chaîne:

>>> "\n" in "hello\ngoodbye"
True

... ou dans le cadre d'une déclaration if:

if "\n" in foo:
    print "There's a newline in variable foo"

Vous n'avez pas besoin d'utiliser des expressions régulières dans ce cas.

30
Mark Longair

Oui comme ça:

if '\n' in mystring:
    ...

(Python a des expressions régulières, mais elles sont excessives dans ce cas.)

10
RichieHindle

Voir:

https://docs.python.org/2/glossary.html#term-universal-newlines

Manière d'interpréter les flux de texte dans lesquels tous les éléments suivants sont reconnus comme terminant une ligne: la convention de fin de ligne Unix '\ n', la convention Windows '\ r\n' et l'ancienne convention Macintosh '\ r '. Voir PEP 278 et PEP 3116, ainsi que str.splitlines () pour une utilisation supplémentaire.

Je déteste être le seul à couper les cheveux en quatre (cela veut dire), mais cela suggère qu'un test suffisant serait:

if '\n' in mystring or '\r' in mystring:
    ...
0
AlanSE