0

我不熟悉 Python,我一直在尝试自学帮助我的工作自动化。

现在我的工作是删除任何以“Suite XYZ”开头的地址字符串的前面部分。有时只是“套件 A”,有时是“套件 12A”。我想删除这些,但避免从字符串的前面删除太多,地址的其余部分在哪里,所以我不能每次字符串以“suite”开头时都剪掉一个固定的数量。我正在考虑只寻找“suite _ _”,如果第二个或第三个字符是空格,则分别仅删除“suite _ ”或“suite _ ”并返回字符串。

只计算空间并在第二个空间切割会更好吗?那么“Suite AAA(Rest Of Address)”会在 AAA 和字符串的其余部分之间被切断吗?

在寻求帮助时,我不断看到一些关于正则表达式的东西。这值得研究吗?

4

2 回答 2

3

一定要研究正则表达式。对于这种类型的问题,他们无法被击败:

>>> import re
>>> re.sub('(s|S)uite\s+\w+\s*', '', 'Suite 134A xxx')
'xxx'
于 2013-06-28T21:45:04.247 回答
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(第三个)开始的每个不相交的子字符串连接起来,并用空格连接它们。

于 2013-06-28T22:24:46.823 回答