2011-03-04 11 views
7

¿Cómo verificar una nueva línea en una cadena?¿Cómo puedo comprobar si hay una nueva línea en la cadena en Python 3.x?

¿Tiene python3.x algo similar al funcionamiento normal de Java donde hubiera funcionado directamente if (x=='*\n')?

+0

Tenía la esperanza de soluciones para la comprobación de _cualquier_ tipo de salto de línea no sólo estilo Unix. – ThorSummoner

+0

nota: [hay varios caracteres Unicode que pueden reconocerse como líneas nuevas] (https://docs.python.org/3/library/stdtypes.html#str.splitlines) – jfs

+1

@ThorSummoner: Python usa el modo universal de nueva línea por defecto es decir, la nueva línea específica de la plataforma como ''\ r \ n'' se traduce a'' \ n'' en la entrada y en reverso ''\ n'' se traduce a' os.linesep' en la salida. Si no te importan las nuevas líneas de Unicode; ''\ n'' es todo lo que necesitas en la mayoría de los casos. – jfs

Respuesta

23

Si lo que desea es comprobar si está presente un salto de línea (\n), sólo puede utilizar el operador de Python in para comprobar si está en una cadena:

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

... o como parte de un if instrucción:

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

No es necesario utilizar expresiones regulares en este caso.

+0

como complemento si desea saber si la cadena termina con '\ n' debe hacer si "\ n" == foo [-1] –

+0

Gracias. Funcionó. – change

+0

@XavierCombelle: 'foo.endswith ('\ n')' es más legible. – jfs

9

Sí, como este:

if '\n' in mystring: 
    ... 

(Python tiene expresiones regulares, pero son una exageración en este caso.)

+0

Sí me di cuenta cuando leíste el doc .. – change

Cuestiones relacionadas