[英]python - How to remove punctuation in between words
I use the code to strip a line of text from punctuation: 我使用代码从标点符号中删除一行文本:
line = line.rstrip("\n")
line = line.translate(None, string.punctuation)
The problem is that words like doesn't
turn to doesnt
so now I want to remove the punctuation only between words but can't seem to figure out a way to do so. 问题是,像话
doesn't
转向doesnt
所以现在我只想字之间去除标点符号,但似乎无法找出一种方法来做到这一点。 How should I go about this? 我该怎么办呢?
Edit: I thought about using the strip()
function but that will only take effect on the right and left trailing of the whole sentence. 编辑:我想过使用
strip()
函数,但这只会影响整个句子的左右拖尾。
For example: 例如:
Isn't ., stackoverflow the - best ?
Should become: 应该成为:
Isn't stackoverflow the best
Instead of the current output: 而不是当前的输出:
Isnt stackoverflow the best
Assuming you consider words as groups of characters separated by spaces: 假设您将单词视为由空格分隔的字符组:
>>> from string import punctuation
>>> line = "Isn't ., stackoverflow the - best ?"
>>> ' '.join(word.strip(punctuation) for word in line.split()
if word.strip(punctuation))
"Isn't stackoverflow the best"
or 要么
>>> line = "Isn't ., stackoverflow the - best ?"
>>> ' '.join(filter(None, (word.strip(punctuation) for word in line.split())))
"Isn't stackoverflow the best"
line = line.translate(None, string.punctuation.replace('\'', ''))
这是你想要的吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.