把我的头撞到这里。。在
我试图用regex解析javascript变量“ListData”的全部内容,它以声明var Listdata =
开头,以};
结束。在
我找到了一个类似的解决方案:
Fetch data of variables inside script tag in Python or Content added from js
但我无法让它匹配整个regex。在
代码:
# Need the ListData object
pat = re.compile('var ListData = (.*?);')
string = """QuickLaunchMenu == null) QuickLaunchMenu = $create(UI.AspMenu,
null, null, null, $get('QuickLaunchMenu')); } ExecuteOrDelayUntilScriptLoaded(QuickLaunchMenu, 'Core.js');
var ListData = { "Row" :
[{
"ID": "159",
"PermMask": "0x1b03cc312ef",
"FSObjType": "0",
"ContentType": "Item"
};
moretext;
moretext"""
#Returns NoneType instead of match object
print(type(pat.search(string)))
不知道这里出了什么问题。任何帮助都会得到回报的。在
在regex中,
(.*?);
部分匹配除换行符之外的任何0+字符,直到第一个;
。如果行中没有;
,则没有匹配项。在根据您期望的匹配以行尾的第一个
};
结束,您可以使用在这里
(?sm)
-启用re.S
(它使.
匹配任何字符)和{$
匹配行的结尾,而不仅仅是整个字符串,并使^
匹配行的开始位置)模式var ListData =
(.*?)
-组1:任何0+字符,尽可能少,直到第一个。。。在};$
-};
在一行末尾相关问题 更多 >
编程相关推荐