Python中的部分可变长度字符串删除

时间:2013-06-28 21:41:15

标签: python string

我不熟悉Python,我一直在努力教自己帮助自动化我的工作。

现在我的工作是移除以“Suite XYZ”开头的任何地址字符串的前部。有时它只是“套房A”,有时它是“套房12A”。我想删除它们,但是避免从字符串的前面删除太多,其中地址的其余部分是,所以我不能在每次字符串以“suite”开头时剪掉设定量。我想只是寻找“suite _ _”,如果第二个或第三个字符是一个空格,分别只删除“suite _ ”或“suite _ ”返回字符串。

只计算空间并在第二个空间切割会更好吗?那么“套件AAA(其余地址)”会在AAA和字符串的其余部分之间切换吗?

在寻求帮助时,我不断看到有关正则表达式的内容。这值得研究吗?

2 个答案:

答案 0 :(得分:3)

绝对要看正则表达式。对于这类问题,他们无法击败:

>>> import re
>>> re.sub('(s|S)uite\s+\w+\s*', '', 'Suite 134A xxx')
'xxx'

答案 1 :(得分:0)

正则表达式非常棒,但您对字符串有明确的要求。根据您的问题,他们总是采用以下形式:"Suite AAA (Rest of address)"。只要字符串始终以"Suite"开头,后跟一个空格,后跟1到3个字符,然后是另一个空格,然后是任何内容,您可以使用拆分和切片。

>>> suite = "Suite 12A Honeymoon Suite"
>>> suffix = " ".join(suite.split()[2:])
>>> print suffix
'Honeymoon Suit'

这样做是将字符串拆分为每个空格(["Suite", "12A", "Honeymoon", "Suite"])描绘的子串,然后它将索引2(第三个)的每个不相交的子串连接起来,用空格连接它们。