正则表达式,用空格替换所有下划线和特殊字符?

时间:2013-11-30 15:44:56

标签: python regex

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

代码:

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

它处理所有其他特殊字符但不是下划线。

4 个答案:

答案 0 :(得分:3)

下划线被认为是PCRE正则表达式中的“单词字符”。如果你想匹配的是“任何不是单词字符或下划线”的东西,试试这个:

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我明白了,把它改成了:

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