2011-03-04 24 views
7

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

python3.x有没有类似于java的常规操作,其中直接if (x=='*\n')会工作?

+0

我希望的解决方案,以检查_any_一种新行的不只是unix风格。 – ThorSummoner 2015-07-24 18:48:19

+0

注意:[有多个可能被识别为换行符的Unicode字符](https://docs.python.org/3/library/stdtypes.html#str.splitlines) – jfs 2015-11-26 17:55:15

+1

@ThorSummoner:Python默认使用通用换行模式即,特定于平台的换行符(例如'\ r \ n'')在输入时被翻译为''\ n'',反之''\ n''在输出时被翻译为'os.linesep'。如果你不关心Unicode换行符,在大多数情况下,'\ n''是你所需要的。 – jfs 2015-11-26 17:56:54

回答

23

如果你只是想检查一个换行符(\n)时,你可以使用Python的in运营商来检查,如果它在一个字符串:

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

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

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

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

+0

作为补充,如果你想知道如果字符串以'\ n'结尾,你应该这样做“\ n”== foo [-1] – 2011-03-04 13:59:12

+0

谢谢。有效。 – change 2011-03-04 15:14:57

+0

@XavierCombelle:'foo.endswith('\ n')'更具可读性。 – jfs 2015-11-26 17:59:29

9

是的,是这样的:

if '\n' in mystring: 
    ... 

(Python中确实有正则表达式,但他们在这种情况下是矫枉过正。)

+0

是的,我意识到当你阅读文档.. – change 2011-03-04 15:15:32

相关问题