【发布时间】:2013-11-30 15:44:55
【问题描述】:
所以我尝试使用正则表达式将所有特殊字符替换为空格: 我的代码有效,但它不会替换下划线,我该怎么办?
代码:
new_str = re.sub(r'[^\w]', ' ', new_str)
它适用于所有其他特殊字符,但不是下划线。
【问题讨论】:
所以我尝试使用正则表达式将所有特殊字符替换为空格: 我的代码有效,但它不会替换下划线,我该怎么办?
代码:
new_str = re.sub(r'[^\w]', ' ', new_str)
它适用于所有其他特殊字符,但不是下划线。
【问题讨论】:
下划线在 PCRE 正则表达式中被视为“单词字符”。如果您要匹配的是“不是单词字符或下划线的任何内容”,请尝试以下操作:
new_str = re.sub(r'[\W_]', ' ', new_str)
【讨论】:
下划线是\w 字符组的一部分。改用这个:
new_str = re.sub(r'[^a-zA-Z0-9]', ' ', new_str)
与\w 相同,但减去下划线。
【讨论】:
re.UNICODE 或 re.LOCALE,否则不会。
new_str = re.sub(r'[^\w]|_', ' ', new_str)
【讨论】:
我知道了,改成:
new_str = re.sub(r'[\w_+]', ' ', new_str)
【讨论】: