标签:shopify 记录 正则表达式 com cdn js matcher 两条 data
1. <script\s+\S+comment.js[\s\S]*?</script>
结果可以匹配出包含comment.js的script标签的内容,比如:
输入:
...
<script>
document.documentElement.className=document.documentElement.className.replace(/\bno-js\b/,'js');
if(window.Shopify&&window.Shopify.designMode)document.documentElement.className+=' in-theme-editor';
if(('ontouchstart' in window)||window.DocumentTouch&&document instanceof DocumentTouch)document.documentElement.className=document.documentElement.className.replace(/\bno-touch\b/,'has-touch');
</script>
<link href="//cdn.shopify.com/s/files/1/0056/2370/9799/t/38/assets/theme.scss.css?10509" rel="stylesheet" type="text/css" media="all" />
<script src="https://alireviews-cdn.fireapps.vn/js/frontend/comment.js" defer="defer"></script>
<link rel="stylesheet" href="https://alireviews-cdn.fireapps.vn/css/frontend/vendor.css">
<link rel="stylesheet" href="https://alireviews-cdn.fireapps.vn/css/frontend/grid.css">
...
使用:
Matcher matcher = Pattern.compile("<script\\s+\\S+comment.js[\\s\\S]*?</script>").matcher(text);
if (matcher.find()) {
String comment = matcher.group(0);
}
输出:<script src="https://alireviews-cdn.fireapps.vn/js/frontend/comment.js" defer="defer"></script>
解释:\s+表示一个或者多个空格换行符,\S+表示一个或者多个非空格或者非换行符,[]表示一个组,×表示一个或者多个,关键是在于?,?是非贪婪匹配,即只有匹配到一个</script>结束
2. src[\S]*empire.js[\s\S]*?</script>
输入:
...
</svg>
</button>
<div class="modal-content" data-modal-content></div>
</div>
</div>
<script
src="//cdn.shopify.com/s/files/1/0056/2370/9799/t/38/assets/empire.js?10509"
data-scripts
data-shopify-api-url="//cdn.shopify.com/s/assets/themes_support/api.jquery-e94e010e92e659b566dbc436fdfe5242764380e00398907a14955ba301a4749f.js"
data-shopify-currencies="//cdn.shopify.com/s/javascripts/currencies.js"
data-shopify-countries="/services/javascripts/countries.js"
data-shopify-common="//cdn.shopify.com/s/assets/themes_support/shopify_common-8ea6ac3faf357236a97f5de749df4da6e8436ca107bc3a4ee805cbf08bc47392.js"
data-shopify-cart="//cdn.shopify.com/s/files/1/0056/2370/9799/t/38/assets/jquery.cart.js?10509">
</script>
...
使用:
Matcher matcher = Pattern.compile("src[\\S]*empire.js[\\s\\S]*?</script>").matcher(text);
if (matcher.find()) {
String empire = matcher.group(0);
}
输出:
src="//cdn.shopify.com/s/files/1/0056/2370/9799/t/38/assets/empire.js?10509"
data-scripts
data-shopify-api-url="//cdn.shopify.com/s/assets/themes_support/api.jquery-e94e010e92e659b566dbc436fdfe5242764380e00398907a14955ba301a4749f.js"
data-shopify-currencies="//cdn.shopify.com/s/javascripts/currencies.js"
data-shopify-countries="/services/javascripts/countries.js"
data-shopify-common="//cdn.shopify.com/s/assets/themes_support/shopify_common-8ea6ac3faf357236a97f5de749df4da6e8436ca107bc3a4ee805cbf08bc47392.js"
data-shopify-cart="//cdn.shopify.com/s/files/1/0056/2370/9799/t/38/assets/jquery.cart.js?10509">
</script>
标签:shopify,记录,正则表达式,com,cdn,js,matcher,两条,data 来源: https://www.cnblogs.com/yongfengnice/p/10894435.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。