【发布时间】:2013-09-09 07:41:44
【问题描述】:
使用正则表达式我想获取包含 .xls 或 .xlsx 文本的 href
我想坚持这个正则表达式
<a\s*[^>]*\s*href\s*=\s*((?:[^ ]|[\n\r])+)\s*[^>]*>.*?<\/a>
但是我应该在此处添加什么,以便我只能获取包含锚标记中的 .xls 或 .xlsx 文本的链接。
【问题讨论】:
-
@Corak 抱歉,但我必须坚持这个正则表达式。
使用正则表达式我想获取包含 .xls 或 .xlsx 文本的 href
我想坚持这个正则表达式
<a\s*[^>]*\s*href\s*=\s*((?:[^ ]|[\n\r])+)\s*[^>]*>.*?<\/a>
但是我应该在此处添加什么,以便我只能获取包含锚标记中的 .xls 或 .xlsx 文本的链接。
【问题讨论】:
这样做有很多潜在的问题,但使用 JavaScript:
var re = new RegExp(/<a\s*[^>]*\s*href\s*=\s*((?:[^ ]|[\n\r])+)((\.xls)|(\.xlsx))\s*[^>]*>.*?<\/a>/ig);
txt = 'ok, here you go: <a href="test.xls">test file</a> and <a href="http://not.test.com">not file</a>, but another <a href = "http://www.xls.com/test.xls">test file</a>!';
txt.match(re)
=> ['<a href="test.xls">test file</a>', '<a href = "http://www.xls.com/test.xls">test file</a>']
【讨论】:
document.getElementsByTag ('a') 遍历 DOM 并在每个 src 属性上使用更简单的正则表达式。