如何使用re?

时间:2016-09-25 18:26:26

标签: python regex python-3.x

例如有这样的手机:

phones = '+35(123) 456 78 90 (123) 555 55 55  (908)985 88 89   (593)592 56 95'

我需要得到:

phones_list = ['+35(123) 456 78 90', '(123) 555 55 55', '(908)985 88 89', (593)592 56 95]

尝试使用re来解决,但对我来说却是一项艰巨的任务。

1 个答案:

答案 0 :(得分:6)

此方法使用+(来表示电话号码的开头。它不需要多个空格:

>>> phones = '+35(123) 456 78 90 (123) 555 55 55  (908)985 88 89   (593)592 56 95'
>>> re.split(r' +(?=[(+])', phones)
['+35(123) 456 78 90', '(123) 555 55 55', '(908)985 88 89', '(593)592 56 95']

这会根据一个或多个空格分隔字符串,后跟(+

在正则表达式中,+匹配一个或多个空格。 (?=[(+])是一个先见之明。它要求空格后跟(+,但不会使用(+。由于我们使用的是预测而不是普通匹配,因此前导(+仍然是电话号码的一部分。