我想将两行代码合二为一。第一个是删除所有 string.punctuations。我使用的代码如下:df[col].apply(lambda x: re.sub(r'[!\"#$%&\'()*+,-.\/:;<=>?@[\\]^_`{|}~]+', '', x))第二个是去掉一些特殊字符(我不知道怎么表达这种双引号,比如; 这些与普通引号“’‘”不同):'""'df[col].apply(lambda x: re.sub(r'[“’‘”]', '', x))我想用一行代码将它们全部删除。我试图简单地将第二个完全匹配添加到第一个,但事实证明文本中没有删除第二个匹配。我想知道为什么以及如何有效地删除这些punctuations.需要清理的示例文本可能是:text = '“Client” refers to Client or “”any User uploads or otherwise supplies to, or stores in, the Services under Client’s account.'
1 回答
慕桂英546537
TA贡献1848条经验 获得超10个赞
根据您的回答,我相信这就是您正在寻找的答案:
import re text = '“Client” refers to Client or “”any User uploads or otherwise supplies to, or stores in, the Services under Client’s account.' re.sub(r'[^\w|^\d|^\s]+', '', text)
输出:
'Client refers to Client or any User uploads or otherwise supplies to or stores in the Services under Clients account'
替换所有字符,除了:
^\w
单词字符,如 AZ 和 az^\d
数字^\s
空格
考虑到特殊字符列表的广度,这种排他性过滤比包容性过滤更有效。
添加回答
举报
0/150
提交
取消