Python 正则表达式替换标点符号 为啥这里re. sub没起作用? 我来答 1个回答 #热议# 海关有哪些禁运商品?查到后怎么办? knifefox 2020-04-01 · TA获得超过1.6万个赞 知道大有可为答主 回答量:1329 采纳率:76% 帮助的人:711万 我也去答题访问个人页 关注 展开全部 图片太模糊根本看不清,你重新截图看 一下。或者你文字说明一下你的要求。 更多追问追答 追问 不知道为什么放上来就这么模糊了您看看现在看得清楚不 追答 不行看不清,你直接复制吧 追问 长了追问发不了 私信了 追答 没有收到你的私信, 你可以把出错的那部分上下几行复制一下就行或者发我邮箱:knifefox@126.com 没有收到你是私信,你可以发我邮箱:knifefox@126.com 追问 with open('D:\罗密欧与朱丽叶(英文版)莎士比亚 (3).txt') as f: #with语句解释在最后 a = f.read() for i in a: if i in string.punctuation: a = re.sub("i", "",a) words_dic = {} 这里想用空格替换所有标点符号 在这用replace就可以但是不知道为什么改成sub就失败了 追答 re.sub(i,'',a) 追问 不得行 把那个i的分号去掉要报错 追答 哪个是引号不是分号"i"就表示字母i而i是变量i,也就是你for i in a:中的i哦对了还要用转义符号才行,不如如果i是.的话就全替换掉了a = re.sub('\\' + i ,'',a) 对了 还要用转义符号才行,不如i是.的话就全替换掉了a = re.sub('\\' + i ,'',a)然后你这个还有问题,如果用正则表达式最好不用这种方法替换。不用循环比如 re.sub('[^\da-zA-Z\u4e00-\u9fa5]','',a) 你用正则表达式就不需要搞什么循环re.sub('[^a-zA-Z\d\u4e00-\u9fa5]','',a)这样就行了 追问 \\ 这里要报错说illegal escape sequence 追答 re.sub(r'[^a-zA-Z\d\u4e00-\u9fa5 ]','',a) re.sub(r'[^ a-zA-Z\d\u4e00-\u9fa5]','',a) 追问 TATu4e00报错了 追答 追问 不报错了 但还是没删掉 … 追答 你那不是字典吗?后来字典中的冒号。你看有没有删除可以在b=re.sub(r'[^ a-zA-Z\d\u4e00-\u9fa5]','',a) 这行的上面加一个print(a)下面加一行print(b)对比一下就知道删除了没有。 追问 不是只有冒号 还有感叹号那些好像没有耶 追答 你print(a)显示什么print(b)又显示了什么?可以把下面的先注释掉 追问 print(a)显示的就是txt文本里的内容 这里还没有被分割 截图里所有都是a的结果print b 是分割之后也有标点符号 追答 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 收起 1条折叠回答 推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询 其他类似问题 2017-12-16 python中用正则表达式去掉文本中所有的标点符号 16 2017-08-29 python 正则表达式re.sub函数替换内容的一个比较基础的问题 1 2018-02-28 python正则表达式去除所有标点 22 2018-08-26 python正则表达式替换字符串问题 2019-08-03 python正则表达式re.findall(r"\b\w+\b", s)中的r是什么意思? 94 2019-10-15 python怎么用正则表达式去掉文本中所有的标点符号? 2017-07-08 python正则表达式re.sub中的匹配问题 2019-07-04 python正则表达式中re.compile('\\\n')匹配的为什么是换行符? 1 更多类似问题 > 为你推荐: