Python使用regex从javascript提取文本

2024-09-28 01:30:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些javascript文本:

NCIA.username = 'filler@school.edu'; 
NCIA.user_id = '5bad4c16260c175e8660ae19'; 
NCIA.user_rights = '1'*1; 
if (empty(NCIA.lti_info) || NCIA.lti_info.valid_connection == false) NCIA.catalog_cookie=true; 
NCIA.alias_activity_id='';
NCIA.activity_id='560a8cc65e4ef62276c1a2f0';

我想使用regex来提取NCIA.用户名以及NCIA.id活动。有什么好方法可以同时提取这两种信息吗?你知道吗


Tags: 文本infoidifusernameltiactivityjavascript
1条回答
网友
1楼 · 发布于 2024-09-28 01:30:44

这应该是你想要的。正则表达式在行首查找NCIA(或可能在某些空格之后);查找.;查找usernameactivity_id之一;然后查找=,可能被空格包围;最后查找单引号内的值:

import re
js = """NCIA.username = 'filler@school.edu'; 
NCIA.user_id = '5bad4c16260c175e8660ae19'; 
NCIA.user_rights = '1'*1; 
if (empty(NCIA.lti_info) || NCIA.lti_info.valid_connection == false) NCIA.catalog_cookie=true; 
NCIA.alias_activity_id='';
NCIA.activity_id='560a8cc65e4ef62276c1a2f0';"
"""
regex = re.compile('^\s*NCIA\.(username|activity_id)\s*=\s*\'([^\']+)\';', re.MULTILINE)
print regex.findall(js)

输出

[('username', 'filler@school.edu'), ('activity_id', '560a8cc65e4ef62276c1a2f0')]

Demo on rextester

相关问题 更多 >

    热门问题