【问题标题】:Remove/Replace all whitespaces from a multi-lines string, except newline characters删除/替换多行字符串中的所有空格,换行符除外
【发布时间】:2011-08-27 22:11:51
【问题描述】:

我想使用正则表达式从多行字符串中删除所有空白字符。 我正在寻找的是这样的:

exp = re.compile("\s-[\r\n]")
exp.sub('', text)

是否有执行上述操作的正则表达式。由于text 是unicode,除了[\t\v\f \r\n] 之外,还有可能形成\s 类的其他字符,我不能使用[\t\v\f ]。

【问题讨论】:

  • 顺便说一句 - 我不是 Python 了解的人,但你不应该使用 re.U 吗?
  • 关于re.U,我以为输入文本为unicode时python会自动使用。现在我所有的数据都是英文的,所以我不知道除了上述之外是否还有其他空白字符。我刚刚从 python 文档中遇到了\s 中的字符列表。当我想到 unicode 问题时,我真的在尝试使用提到的正则表达式 [\t\v\f ] 来满足我的需要。如果您知道除上述之外的任何 unicode 空白字符,请告诉我,我会检查是否需要使用 re.U。

标签: python regex newline whitespace removing-whitespace


【解决方案1】:

试试这个双否定字符类:

[^\S\r\n]

示例:http://rubular.com/r/t2Ahjs9UzF

【讨论】:

  • @Bart - 我想是的!谢谢:)
猜你喜欢
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-24
  • 1970-01-01
  • 2012-10-29
相关资源
最近更新 更多