为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式:如何在 python 中使用 re.sub() 将两个完全匹配合并为一个?

正则表达式:如何在 python 中使用 re.sub() 将两个完全匹配合并为一个?

天涯尽头无女友 2023-03-22 16:58:34
我想将两行代码合二为一。第一个是删除所有 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空格

考虑到特殊字符列表的广度,这种排他性过滤比包容性过滤更有效。


查看完整回答
反对 回复 2023-03-22
  • 1 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信