1

我需要用空格替换“-”(但连续不超过1个,并删除开头和结尾的所有内容)并删除任何其他特殊字符,例如:

    "Example-1" ---> "Example 1"  
    "Example - 2"---> "Example 2"  
    "Ex amp le-(3)"--->"Ex amp le 3"  
    "--Example%s,,4 "--->"Examples4"  

解决

(我必须编辑这个问题,因为我只有 8 个声誉,而且我在 5 个多小时内无法回答我自己的问题)

我这样解决了这个问题:

 my_string = re.sub('[^\w -]', '', my_string).replace('-', ' ').strip(' ')
 subsMade = 1
 while subsMade > 0:
     (my_string, subsMade) = re.subn('  ', ' ', my_string)
4

1 回答 1

3

我同意zigg,你需要reg ex。您可以在这里找到一个温和的介绍:http ://www.diveintopython.net/regular_expressions/index.html#re.intro (查看“街道地址”案例研究,它与您想要做的事情有一些相似之处)。

编辑:

我不是注册专家,但是...

import re

pattern = "[- ]+"
re.sub(pattern, " ", your_string)

这将解析您的前两个示例。我不确定你需要的一切是否可以在一个模式中完成......愿一些智者出现。

于 2012-10-14T22:29:06.350 回答