Python有条件地删除空格

时间:2016-09-06 18:34:59

标签: python regex

我希望删除与/相邻的字符串中的空格,同时保留其余的空格。

例如,假设我有一个字符串98 / 100 xx 3/ 4 and 5/6。我的示例所需的结果是98/100 xx 3/4 and 5/6。 (这样我就可以使用.split(' ')作为下一步并提取有意义的数字,即98/1003/45/6作为我的最终结果。)注意:我只想要寻找/,无需担心其他运营商。

我知道我应该使用re,但我无法理解。任何帮助表示赞赏!

---------------------我的方法如下------------------

我使用[index_num.end(0) for index_num in re.finditer('/', test)],其中test = '98 / 100 xx 3/ 4 and 5/6'找到/的索引,然后检查上一个或下一个是否为空格。这并不理想,我相信有更简单的方法。

2 个答案:

答案 0 :(得分:4)

您可以使用str.replace而不是正则表达式删除斜杠前后的空格:

>>> '98 / 100 xx 3/ 4 and 5/6'.replace(' /','/').replace('/ ','/')
'98/100 xx 3/4 and 5/6'

答案 1 :(得分:3)

提示:在斜杠周围找到任意数量的空格(不仅仅是空格字符,还有制表符等)的正则表达式为:r'\s*/\s*'。正则表达式位于撇号之间。句点只是句子的结尾,r告诉Python将撇号中的字符串视为“原始”字符串。

如果您不想找到任意空格字符,只想查找空格字符本身,则正则表达式为r' */ *'。注意星号前面的空格。

其余的我留给你,因为这听起来像是一个家庭作业问题。