【问题标题】:How can I check for a new line in string in Python 3.x?如何在 Python 3.x 中检查字符串中的新行?
【发布时间】:2011-03-04 12:38:43
【问题描述】:

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

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

【问题讨论】:

  • 我希望有解决方案来检查 any 类型的换行符,而不仅仅是 unix 样式。
  • @ThorSummoner:默认情况下,Python 使用通用换行模式,即,特定于平台的换行符(例如 '\r\n')在输入时被转换为 '\n',反之,'\n' 在输入时被转换为 os.linesep输出。如果您不关心 Unicode 换行符;在大多数情况下,'\n' 就是您所需要的。

标签: python python-3.x


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 作为补充,如果你想知道字符串是否以 '\n' 结尾,你应该这样做 if "\n" == foo[-1]
【解决方案2】:

是的,像这样:

if '\n' in mystring:
    ...

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

【讨论】:

    【解决方案3】:

    见:

    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:
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-05
      • 2019-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 2015-04-13
      • 1970-01-01
      相关资源
      最近更新 更多