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

正则表达式:如何在python中使用re.sub()将两个精确匹配合并为一个?,python,regex,replace,Python,Regex,Replace,我想把两行代码合并成一行 第一个是删除所有string.标点符号。我使用的代码如下: df[col].apply(lambda x: re.sub(r'[!\"#$%&\'()*+,-.\/:;<=>?@[\\]^_`{|}~]+', '', x)) 我想在一行代码中删除它们。我试图简单地将第二个精确匹配添加到第一个匹配中,但结果表明第二个匹配没有在文本中删除。我想知道为什么以及如何有效地删除那些标点符号 需要清理的示例文本可以是: text = '“Client

我想把两行代码合并成一行

第一个是删除所有string.标点符号。我使用的代码如下:

df[col].apply(lambda x: re.sub(r'[!\"#$%&\'()*+,-.\/:;<=>?@[\\]^_`{|}~]+', '', x))
我想在一行代码中删除它们。我试图简单地将第二个精确匹配添加到第一个匹配中,但结果表明第二个匹配没有在文本中删除。我想知道为什么以及如何有效地删除那些标点符号

需要清理的示例文本可以是:

text = '“Client” refers to Client or “”any User uploads or otherwise supplies to, or stores in, the Services under Client’s account.'

根据你的回答,我相信这就是你想要的答案:

重新导入
text=““客户端”指客户端或“任何用户上传或以其他方式提供或存储到客户端帐户下的服务。”
re.sub(r'[^\w |^\d | ^\s]+','',文本)
输出:

'Client refers to Client or any User uploads or otherwise supplies to or stores in the Services under Clients account'
替换除以下字符以外的所有字符:

  • ^\w
    单词字符,如A-Z和A-Z
  • ^\d
    数字
  • ^\s
    空白

考虑到特殊字符列表的广度,此独占筛选比包含筛选更有效。

请显示一个。请尝试此,
df.col.str.replace(r“[^\w+\d+]”,“”)
谢谢,但我尝试过,它对示例文本无效。第二个匹配项不能删除@rgkIn在这种情况下,我认为Sushanth对您的问题的评论更接近您的解决方案-删除所有非单词和非数字字符,但您还需要为空格添加
^\s
。查看我的最新答案
'Client refers to Client or any User uploads or otherwise supplies to or stores in the Services under Clients account'