【问题标题】:Regex, replace all underscore and special char with spaces?正则表达式,用空格替换所有下划线和特殊字符?
【发布时间】:2013-11-30 15:44:55
【问题描述】:

所以我尝试使用正则表达式将所有特殊字符替换为空格: 我的代码有效,但它不会替换下划线,我该怎么办?

代码:

    new_str = re.sub(r'[^\w]', ' ', new_str)

它适用于所有其他特殊字符,但不是下划线。

【问题讨论】:

    标签: python regex


    【解决方案1】:

    下划线在 PCRE 正则表达式中被视为“单词字符”。如果您要匹配的是“不是单词字符或下划线的任何内容”,请尝试以下操作:

    new_str = re.sub(r'[\W_]', ' ', new_str)
    

    【讨论】:

      【解决方案2】:

      下划线是\w 字符组的一部分。改用这个:

      new_str = re.sub(r'[^a-zA-Z0-9]', ' ', new_str)
      

      \w 相同,但减去下划线。

      【讨论】:

      • @qwrrty:在 Python 2 中,除非您指定 re.UNICODEre.LOCALE,否则不会。
      【解决方案3】:
      new_str = re.sub(r'[^\w]|_', ' ', new_str)
      

      【讨论】:

        【解决方案4】:

        我知道了,改成:

            new_str = re.sub(r'[\w_+]', ' ', new_str)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-16
          • 2014-05-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多