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