-3

朋友们。我的 python 应用程序中有这段代码:

if '(' in obj.value or ')' in obj.value:
    city, country = obj.value.upper()[:-1].split('(')
    found = city.strip() == self.customer.city.upper() and country == self.customer.country.upper()
else:
    city = obj.value.upper()
    found = city.strip() == self.customer.city.upper()

可以具有以下可能值的文本字符串​​:

“纽约”或“纽约 (NY)”

但问题是下面的代码并不能保证可能的错误,例如,缺少一个括号。例如

'纽约纽约)'

我该如何改进和保护这个小片段?例如,Regex 中有一个公式?(我知道一些正则表达式)

4

1 回答 1

2
import re
m = re.match('(.+) \((.+)\)', obj.value)
if m:
    city, country = m.groups()
else:
    city, country = obj.value, None
于 2013-10-03T13:54:21.680 回答