【问题标题】:Regex to find all backslashes and the immediately following character正则表达式查找所有反斜杠和紧随其后的字符
【发布时间】:2020-01-09 09:50:27
【问题描述】:

我目前正在处理电子邮件数据,当从 Outlook 中提取数据时,电子邮件正文仍将所有转义字符保留在字符串中。

我在 Python 中使用 re 包来实现这一点,但无济于事。

这是一个我试图从中删除转义字符的文本示例:

我完全同意这一点。 \r\n\r\n\r最好的问候。

预期:

我希望这样写:“我完全同意这一点。最好 问候。

我尝试了以下方法来提取不需要的文本:

re.findall(r'\\\w+', string)
re.findall(r'\\*\w+', string)
re.findall(r'\\[a-z]+', string)

这些都不起作用。如有任何帮助,我将不胜感激!

谢谢!

【问题讨论】:

    标签: python regex


    【解决方案1】:

    你可以试试这个:

    re.sub(r'\n|\r','', string)
    
    
    'I am completely in agreement with that. best regards.'
    

    【讨论】:

    • 对于 Python 2.x 和 unicode 字符串,可能需要先编译带有标志 re.UNICODE 的模式才能使其工作。
    【解决方案2】:

    你可以自己写一个函数:

    def function(string):
        while '\\' in string:
            ind = string.find('\\')
            string = string[:ind] + string[ind+2:]
    
        return string
    

    【讨论】:

      【解决方案3】:

      您似乎想摆脱换行符。如果是这样,您不需要 re 模块,只需使用:

      string.replace("\r\n", "")
      

      【讨论】:

        【解决方案4】:

        您混淆了 whitechars 的表示(请read more about them here)。

        您应该以这种方式寻找\r\n 字符:

        re.findall(r'\n\w+', string)
        

        re.findall(r'\r\w+', string)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-07-14
          • 2010-11-01
          • 2020-07-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多