如何在Python 3.x中检查字符串中的新行?

cha*_*nge 14 python python-3.x

如何检查字符串中的新行?

python3.x有什么类似于java的常规操作,其中direct if (x=='*\n')可以工作吗?

Mar*_*air 34

如果你只想检查是否存在换行符(\n),你可以使用Python的in运算符来检查它是否在字符串中:

>>> "\n" in "hello\ngoodbye"
True
Run Code Online (Sandbox Code Playgroud)

......或作为if声明的一部分:

if "\n" in foo:
    print "There's a newline in variable foo"
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您不需要使用正则表达式.

  • 作为补充,如果你想知道字符串是否以 '\n' 结尾,你应该做 if "\n" == foo[-1] (3认同)

Ric*_*dle 12

是的,像这样:

if '\n' in mystring:
    ...
Run Code Online (Sandbox Code Playgroud)

(Python确实有正则表达式,但在这种情况下它们有点过分.)


Ala*_*nSE 7

看:

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

一种解释文本流的方式,其中将以下所有内容识别为行结束:Unix 行尾约定 '\n'、Windows 约定 '\r\n' 和旧的 Macintosh 约定 '\r '。请参阅 PEP 278 和 PEP 3116,以及 str.splitlines() 以了解其他用途。

我讨厌成为这个(双关语)的人,但这表明足够的测试是:

if '\n' in mystring or '\r' in mystring:
    ...
Run Code Online (Sandbox Code Playgroud)