我怎么能做得更好?用正则表达式?

时间:2013-10-03 13:46:40

标签: python regex

朋友。 我在我的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()

可以使用以下可能值的文本字符串:

  

'纽约'或'纽约(纽约)'

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

  

'纽约纽约)'

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

1 个答案:

答案 0 :(得分:2)

import re
m = re.match('(.+) \((.+)\)', obj.value)
if m:
    city, country = m.groups()
else:
    city, country = obj.value, None