【问题标题】:Regex Get only docx or doc value from href正则表达式 仅从 href 获取 docx 或 doc 值
【发布时间】:2016-05-22 19:50:28
【问题描述】:

在stackoverflow中搜索后,我发现了这个正则表达式模式:

/href=['"]([^'"]+?)['"]/

它获取所有hrefs 的值。

现在我需要限制该模式以仅获取 doc 或 docx 值。

请注意,链接可能会在.docx.doc 之后添加。

例如,如果我有链接:

<a href="/site/file1.doc?id=1">link1</a>

结果应该是:

/site/file1.doc

【问题讨论】:

  • “仅获取 doc 或 docx 值”是什么意思。您是要捕获扩展名,还是只希望 href 值匹配 doc/docx?
  • 什么是正则表达式?文件名前面总是有斜杠吗?
  • 我的意思是从 href 开始直到 .doc 或 .docx 的值,例如如果我有 bbb 结果应该是:/site1/site2/file.doc

标签: regex hyperlink href


【解决方案1】:
/href=['"]([^'"]+?\.docx?)[^'"]['"]/

在这里查看:https://regex101.com/r/oS1cD0/2

【讨论】:

  • 这将匹配“foo.doctor”
【解决方案2】:

试试这个:

/href=(['"])([^'"]+\.docx?(\?[^'"]*)?)\1/

这要求 ".doc" 或 ".docx" 之后的内容要么是 href 的结尾, 要么 后面是一个问号,即它不会匹配 "foo.医生”。

这还通过反向引用确保引号在每一端匹配。

live demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多