【发布时间】:2021-06-30 13:59:43
【问题描述】:
我用空格替换标点符号:
import re
sentence = ...
output = re.sub(r'[^\w\s]', ' ', sentence)
我有两个问题:
-
我想将其更改为允许用连字符分隔的双字:例如
"double-barreled"应保留为"double-barreled"而不是"double barreled"。实施此更改的最快方法是什么? -
稍后,我想用空格替换任何不包含字母或数字的单词,也考虑双字。例如:
"Tokyo2020">" ""covid-19">"covid-19""cov!d-19">" ""Oompa-L00mpa">" "有什么聪明的方法可以用正则表达式来实现吗?
【问题讨论】:
-
改用可接受字符的集合可能更实用,例如
[a-zA-Z][a-zA-Z\d\-]+ -
对于 1:
output = re.sub(r'[^\w\s-]', ' ', sentence) -
SO 指导方针说一次问一个问题。我知道这些可能看起来像相关的问题,但实际上 2 与 1 完全不同,因为它处理的是单词,而不是字符,我建议您单独发布。