Tit*_*ter 2 python regex python-3.x
例如,有这样的手机:
phones = '+35(123) 456 78 90 (123) 555 55 55 (908)985 88 89 (593)592 56 95'
Run Code Online (Sandbox Code Playgroud)
我需要得到:
phones_list = ['+35(123) 456 78 90', '(123) 555 55 55', '(908)985 88 89', (593)592 56 95]
Run Code Online (Sandbox Code Playgroud)
试图解决使用re,但对我来说是一项艰巨的任务.
此方法使用+或(表示电话号码的开头.它不需要多个空格:
>>> 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']
Run Code Online (Sandbox Code Playgroud)
这会根据一个或多个空格分隔字符串,后跟(或者+.
在正则表达式中,+匹配一个或多个空格. (?=[(+])是一个先见之明.它需要的空间应遵循无论是(或+,但不消耗(或+.因为我们使用的是先行而不是简单的匹配,所以是电话号码的前导(和+保留部分.