我想从输入内容中获取JS文件名,其中包含jqueryRE作为子字符串.
这是我的代码:
第1步:从内容中提取JS文件.
>>> data = """ <script type="text/javascript" src="js/jquery-1.9.1.min.js"/>
... <script type="text/javascript" src="js/jquery-migrate-1.2.1.min.js"/>
... <script type="text/javascript" src="js/jquery-ui.min.js"/>
... <script type="text/javascript" src="js/abc_bsub.js"/>
... <script type="text/javascript" src="js/abc_core.js"/>
... <script type="text/javascript" src="js/abc_explore.js"/>
... <script type="text/javascript" src="js/abc_qaa.js"/>"""
>>> import re
>>> re.findall('src="js/([^"]+)"', data)
['jquery-1.9.1.min.js', 'jquery-migrate-1.2.1.min.js', 'jquery-ui.min.js', 'abc_bsub.js', 'abc_core.js', 'abc_explore.js', 'abc_qaa.js']
Run Code Online (Sandbox Code Playgroud)
第2步:获取具有子字符串的JS文件 jquery
>>> [ii for ii in re.findall('src="js/([^"]+)"', data) if "jquery" in ii]
['jquery-1.9.1.min.js', 'jquery-migrate-1.2.1.min.js', 'jquery-ui.min.js']
Run Code Online (Sandbox Code Playgroud)
我可以在上面的步骤1中执行步骤2表示RE模式以获得结果吗?
你当然可以.一种方法是使用
re.findall('src="js/([^"]*jquery[^"]*)"', data)
Run Code Online (Sandbox Code Playgroud)
这将匹配所有内容,"js/直到最近"它包含jquery任何地方.如果您对位置有更多了解jquery(例如,如果它始终在开头),您可以相应地调整正则表达式.
如果要确保jquery不直接用其他字母数字字符包围,请使用单词边界锚点:
re.findall(r'src="js/([^"]*\bjquery\b[^"]*)"', data)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
503 次 |
| 最近记录: |