我需要解析一个字符串,但我还没有想出使用正则表达式的方法。
我需要解析的字符串是:
string_to_parse= "Authorizations(authorizations=[Authorization(hash=XXXX, device_model='PC 64bit', platform='Android', system_version='10', api_id=XXXXX, app_name='XXXX', app_version='1.22.0', date_created=datetime.datetime(2021, 7, 10, 7, 15, 15, tzinfo=datetime.timezone.utc), date_active=datetime.datetime(2021, 7, 16, 18, 1, 36, tzinfo=datetime.timezone.utc), ip='999.999.999.999', country='XXX, Russia', region='', current=True, official_app=False, password_pending=False), Authorization(hash=XXXX, device_model='PC 64bit', platform='', system_version='Windows 10', api_id=XXX, app_name='XXXX', app_version='2.8.9', date_created=datetime.datetime(2021, 6, 20, 23, 27, 5, datetime.timezone.utc), date_active=datetime.datetime(2021, 7, 16, 17, 15, 14, tzinfo=datetime.timezone.utc), ip='999.999.999.999', country='XXXX, Russia', region='', current=False, official_app=True, password_pending=False)])
我想在Authorization( 的所有实例之后获取() 中的所有文本,并将其放入列表中。结果将类似于:
list[0]= "(hash=XXXX, device_model='PC 64bit', platform='Android', system_version='10', api_id=XXXXX, app_name='XXXX', app_version='1.22.0', date_created=datetime.datetime(2021, 7, 10, 7, 15, 15, tzinfo=datetime.timezone.utc), date_active=datetime.datetime(2021, 7, 16, 18, 1, 36, tzinfo=datetime.timezone.utc), ip='999.999.999.999', country='XXX, Russia', region='', current=True, official_app=False, password_pending=False)"
list[1] = "(hash=XXXX, device_model='PC 64bit', platform='', system_version='Windows 10', api_id=XXX, app_name='XXXX', app_version='2.8.9', date_created=datetime.datetime(2021, 6, 20, 23, 27, 5, datetime.timezone.utc), date_active=datetime.datetime(2021, 7, 16, 17, 15, 14, tzinfo=datetime.timezone.utc), ip='999.999.999.999', country='XXXX, Russia', region='', current=False, official_app=True, password_pending=False)"
我怎样才能实现它?
您可以使用re.findall
:
import re
print(re.findall('(?<=Authorization)\(.*?\)', string_to_parse))
输出:
["(hash=XXXX, device_model='PC 64bit', platform='Android', system_version='10', api_id=XXXXX, app_name='XXXX', app_version='1.22.0', date_created=datetime.datetime(2021, 7, 10, 7, 15, 15, tzinfo=datetime.timezone.utc)", "(hash=XXXX, device_model='PC 64bit', platform='', system_version='Windows 10', api_id=XXX, app_name='XXXX', app_version='2.8.9', date_created=datetime.datetime(2021, 6, 20, 23, 27, 5, datetime.timezone.utc)"]
正则表达式解释:
(?<=Authorization)
=> 正向后视:对于要匹配的后续表达式,Authorization
必须在它之前。
\(.*?\)
=> 匹配(
和之间的任何字符块)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句