python去除中间空格只留一个_Python如何通过空格将标点和单词分开,在标点和单词之间只留一个空格?...

我有下面的绳子:input = "I love programming with Python-3.3! Do you? It's great... I give it a 10/10. It's free-to-use, no $$$ involved!"

除了“/”、“'”、“-”、“+”和“$”,所有标点符号都应该与单词分开。在

因此输出应为:

^{pr2}$

我使用了以下代码:for x in string.punctuation:

if x == "/":

continue

if x == "'":

continue

if x == "-":

continue

if x == "+":

continue

if x == "$":

continue

input = input.replace(x," %s " % x)

我得到以下输出:I love programming with Python-3 . 3 ! Do you ? It's great . . . I give it a 10/10 . It's free-to-use , no $$$ involved !

它是可行的,但问题是它有时会在标点符号和单词之间留下两个空格,例如句子中第一个感叹号和单词“Do”之间。这是因为他们之间已经有了空间。在

如果使用:input=“Hello”,也会出现此问题。(嗨)”。输出将是:" Hello . ( hi ) "

注意左括号前的两个空格。在

我需要的输出与任何标点和单词之间只有一个空格,除了上面提到的5个标点,它们没有与单词分开。我该怎么解决这个问题?或者,有没有更好的方法来使用正则表达式来实现这一点?在

提前谢谢。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值