【问题标题】:python replace string ignore new linepython替换字符串忽略新行
【发布时间】:2019-06-30 07:48:03
【问题描述】:

例如,

str="dddabc
d
e
xxxx
123
345"

,想用 null 替换 "abcde"。 新的 str 需要是

"ddd
xxxx
123
345"

有什么简单的方法?

如果我删除新行,新字符串将是 dddxxxx123345 ,这是错误的

这需要在 linux 上,所以 \r\n 可能

【问题讨论】:

    标签: python string python-2.7 replace


    【解决方案1】:

    使用正则表达式:

    new_str = re.sub('a(\s)*b(\s)*c(\s)*d(\s)*e(\s)*', "", str)
    

    【讨论】:

      【解决方案2】:

      使用正则表达式re.sub

      返回替换最左边不重叠得到的字符串 替换 repl 在字符串中出现的模式。如果 未找到模式,字符串原样返回。 repl 可以是 字符串或函数;如果它是一个字符串,任何反斜杠都会在其中转义 正在处理。

      import re
      st="""dddabc
      d
      e
      xxxx
      123
      345
      """
      rep="abcde"
      print(re.sub(r'\n?'.join(rep),r'',st))
      

      输出

      ddd
      xxxx
      123
      345
      

      【讨论】:

      • @devohourse 我已经进行了更改,之前我没有使用原始字符串,现在我做到了。这导致了错误:-)。
      • 那但是我会得到同样的错误,可能是因为需要在 linux 上工作并且断线是\r\n
      • @devohourse 换行符现在总是\n 如果你不确定这种类型print(repr(string)) 来打印底层表示
      猜你喜欢
      • 2019-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 2012-07-14
      • 2019-03-21
      • 1970-01-01
      相关资源
      最近更新 更多