【问题标题】:Regular Expression to match cross platform newline characters正则表达式匹配跨平台换行符
【发布时间】:2010-11-22 20:11:04
【问题描述】:

我的程序可以接受具有 \n、\r\n 或 \r 换行符的数据(例如 Unix、PC 或 Mac 样式)

构造一个匹配任何编码的正则表达式的最佳方法是什么?

或者,我可以在输入上使用 Universal_newline 支持,但现在我有兴趣看看正则表达式是什么。

【问题讨论】:

  • 请注意,\rold Mac 风格(“旧”是指“OS 9 及之前的版本”)。任何运行 OS X(又名 1999 年之后制造)的 Mac 都将像任何其他 Unix 一样使用\n
  • 匹配换行符与使用'$'匹配行尾什么时候有用?
  • @tonfa:通过正则表达式将文件拆分为行时。
  • @too much php 但是 str.splitlines() 不也能正常工作吗?
  • @tonfa:好的,所以它并不经常需要,但是对于没有像splitlines() 这样的方便功能的其他语言来说,了解它是件好事。

标签: python regex cross-platform eol


【解决方案1】:

该模式可以简化为 \r?\n 以获得一点性能提升,因为您可能不必处理旧的 Mac 样式(自 2002 年 2 月起不再支持 OS 9)。

【讨论】:

    【解决方案2】:

    当我想要精确时,我使用的正则表达式是"\r\n?|\n"

    当我不关心一致性或空行时,我使用"[\r\n]+",我想它可以让我的程序快 0.2% 左右。

    【讨论】:

    • 通常当我不关心换行时,我也不关心空格。
    • 是什么让你的程序更快?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    相关资源
    最近更新 更多