const regex = /<article(?: class="lead")?><a href=".*" target="_top"><img(?: height=".*")? src="(.*)"(?: width=".*")? \/><\/a><h[1,2]><a href="(.*)" target="_top">(.*)<\/a><\/h[1,2]><small>By .*<\/small><small>Updated: (.*) - (.*)<\/small><div class="clear"><\/div><\/article>/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('<article(?: class="lead")?><a href=".*" target="_top"><img(?: height=".*")? src="(.*)"(?: width=".*")? \\\/><\\\/a><h[1,2]><a href="(.*)" target="_top">(.*)<\\\/a><\\\/h[1,2]><small>By .*<\\\/small><small>Updated: (.*) - (.*)<\\\/small><div class="clear"><\\\/div><\\\/article>', 'g')
const str = `<section class="news"><article class="lead"><a href="/2016/04/15/what-are-the-10-most-intriguing-games-of-the-2016-nfl-season/a6ikhoo/" target="_top"><img src="/_internal/cimg!0/8p7xcgnjxaoqjj4iwxfv1qlid4ag0mm" /></a><h1><a href="/2016/04/15/what-are-the-10-most-intriguing-games-of-the-2016-nfl-season/a6ikhoo/" target="_top">What are the 10 most intriguing games of the 2016 NFL season?</a></h1><small>By NATE ATKINS and ARTHUR ARKUSH</small><small>Updated: April 15, 2016 - 9:08 am</small><div class="clear"></div></article><div class="clear"></div></section><div class="bigbox ad"></div><section class="news secondary"><article><a href="/2016/04/08/green-bay-packers-cut-ilb-nate-palmer-10-game-starter-in-2015/afybdi5/" target="_top"><img height="225" src="/_internal/cimg!0/pes2uiv39y78ld1yezq38oqcz3invi8" width="400" /></a><h2><a href="/2016/04/08/green-bay-packers-cut-ilb-nate-palmer-10-game-starter-in-2015/afybdi5/" target="_top">Green Bay Packers cut ILB Nate Palmer, 10-game starter in 2015</a></h2><small>By ARTHUR ARKUSH -- aarkush@profootballweekly.com</small><small>Updated: April 8, 2016 - 4:01 pm</small><div class="clear"></div></article><article><a href="/2016/04/08/jacksonville-jaguars-aaron-colvin-and-green-bay-packers-demetri-goodson-suspended-4-games-each-for-peds/ahkwuh8/" target="_top"><img height="225" src="/_internal/cimg!0/5jn3lvqyt16zr6tg7yqrhsavrr3eh45" width="400" /></a><h2><a href="/2016/04/08/jacksonville-jaguars-aaron-colvin-and-green-bay-packers-demetri-goodson-suspended-4-games-each-for-peds/ahkwuh8/" target="_top">Jacksonville Jaguars' Aaron Colvin and Green Bay Packers' Demetri Goodson suspended 4 games each for PEDs</a></h2><small>By ARTHUR ARKUSH -- aarkush@profootballweekly.com</small><small>Updated: April 8, 2016 - 3:23 pm</small><div class="clear"></div></article></section>`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions