正则表达式捕获之间2字符串/值

时间:2018-11-23 10:55:16

标签: html regex notepad++

我想捕获2个字符串之间的值,我尝试了许多正则表达式,但没有办法。

源代码:

</li><li><a href="/Journal/Year/123">Journal Title 2002</a> | <a href="/Journal/Year/456">2004</a> | <a href="/Journal/Year/789">2005</a></ul></div>

正则表达式我尝试过:

(<li><a href=".journal.year.\d+">)(.*)(<a href=".journal.year.\d+">)
(?<=<li><a href=".journal.year.\d+">)(.*)(?=<a href=".journal.year.\d+">)

捕获输出:

Journal Title 2002

或(如果可能)

Journal Title 2002 2004 2005

我希望你能帮助我。 预先感谢。

2 个答案:

答案 0 :(得分:0)

不建议使用RegEx解析HTML。

改为使用DOM

var titles = [];
document.querySelectorAll("[href^='/Journal']").forEach(function(link) {
  titles.push(link.textContent.trim())
});
console.log(titles.join(" "));
<ul><li><a href="/Journal/Year/123">Journal Title 2002</a> | <a href="/Journal/Year/456">2004</a> | <a href="/Journal/Year/789">2005</a></ul>

答案 1 :(得分:0)

https://regex101.com/r/IVUmJf/1

\>([^<|]+)\<

此Regex应该可以满足您的目的。它捕获><之间的所有内容,除非存在|