例如在这个例子中,我想要提取js和css的文件路径,所以我匹配引号和引号中间的内容,然后里面用了 .*? 实现防止贪婪匹配,请问接下来怎么样才能正确的匹配呢?
另外实际的需求并不止于html标签,还可能需要在js or css文件里面提取引用url。 所以想到匹配引号和引号之间的内容,再筛选。
<link rel="stylesheet" href="assets/css/bootstrap-theme.css"> <link rel="stylesheet" href="assets/bower_components/angular-loading-bar/build/loading-bar.css"> <link rel="stylesheet" href="assets/bower_components/font-awesome/css/font-awesome.css"> <link rel="stylesheet" href="assets/css/ngdropover.css"> <script src="assets/bower_components/angularjs-ie8-build/dist/angular.js"></script> <script src="assets/bower_components/jquery.browser/dist/jquery.browser.js"></script> <script src="assets/bower_components/layer/layer.js"></script>
对你说的这个问题,简单的办法类似/"[^"]*\.css"/
或者这样/".*?\.(?:css|js)"/
我用python测试了一个很简单的正则, 匹配时忽略大小写; 鉴于你还有其他模式的只要把格式串中的前后双引号去掉, 只匹配js或者css路径即可:
([^"'\s]*\.css|[^"'\s]+\.js)