const regex = /(<(?:(?:(?:(script|style|object|embed|applet|noframes|noscript|noembed)(?:\s+(?=((?:"[\S\s]*?"|'[\S\s]*?'|(?:(?!\/>)[^>])?)+))\3)?\s*>)[\S\s]*?<\/\2\s*(?=>))|(?:\/?[\w:]+\s*\/?)|(?:[\w:]+\s+(?:"[\S\s]*?"|'[\S\s]*?'|[^>]?)+\s*\/?)|\?[\S\s]*?\?|(?:!(?:(?:DOCTYPE[\S\s]*?)|(?:\[CDATA\[[\S\s]*?\]\])|(?:--[\S\s]*?--)|(?:ATTLIST[\S\s]*?)|(?:ENTITY[\S\s]*?)|(?:ELEMENT[\S\s]*?))))>)|([^<>]*?)(querry)/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(<(?:(?:(?:(script|style|object|embed|applet|noframes|noscript|noembed)(?:\\s+(?=((?:"[\\S\\s]*?"|\'[\\S\\s]*?\'|(?:(?!\\\/>)[^>])?)+))\\3)?\\s*>)[\\S\\s]*?<\\\/\\2\\s*(?=>))|(?:\\\/?[\\w:]+\\s*\\\/?)|(?:[\\w:]+\\s+(?:"[\\S\\s]*?"|\'[\\S\\s]*?\'|[^>]?)+\\s*\\\/?)|\\?[\\S\\s]*?\\?|(?:!(?:(?:DOCTYPE[\\S\\s]*?)|(?:\\[CDATA\\[[\\S\\s]*?\\]\\])|(?:--[\\S\\s]*?--)|(?:ATTLIST[\\S\\s]*?)|(?:ENTITY[\\S\\s]*?)|(?:ELEMENT[\\S\\s]*?))))>)|([^<>]*?)(querry)', 'gm')
const str = `<body class="mediawiki querry ltr sitedir-ltr ns-0 ns-subject page-International_English_Language_Testing_System skin-vector action-view vector-animateLayout">
<div id="mw-page-base" class="noprint"></div>
<div id="mw-head-base" class="noprint"></div>
<div id="content" class="mw-body" role="main">
<a id="top"></a>
and also a normal querry
<div id="siteNotice"><!-- CentralNotice --></div>
<h1 id="firstHeading" class="firstHeading" lang="en"><span dir="auto">International English Language Testing System</span></h1>
<div id="bodyContent" class="mw-body-content">
<div id="siteSub">From Wikipedia, the free encyclopedia</div>
<div id="contentSub"> (Redirected from <a href="/w/index.php?title=IELTS&redirect=no" title="IELTS">IELTS</a>)</div>
<div id="jump-to-nav" class="mw-jump">
Jump to: <a href="#mw-navigation">navigation</a>, <a href="#p-search">search</a>
</div>
<div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><table class="infobox vevent" cellspacing="3" style="border-spacing:3px;width:22em;">
<caption class="summary">International English Language Testing System</caption>
<tr>
<td colspan="2" style="text-align:center;"><a href="/wiki/File:IELTS_logo.svg" class="image"><img alt="IELTS logo.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/7/7f/IELTS_logo.svg/300px-IELTS_logo.svg.png" width="300" height="113" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/7f/IELTS_logo.svg/450px-IELTS_logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/7f/IELTS_logo.svg/600px-IELTS_logo.svg.png 2x" data-file-width="778" data-file-height="293" /></a></td>
</tr>
<tr>
<th scope="row" style="text-align:left;">Acronym</th>
<td>IELTS</td>
</tr>
<tr>
<th scope="row" style="text-align:left;">Type</th>
<td>Standardized test. Available in 2 versions: "Academic" and "General training".</td>
</tr>
<tr>
<th scope="row" style="text-align:left;">Developer / administrator</th>
<td><a href="/wiki/Cambridge_English_Language_Assessment" title="Cambridge English Language Assessment">Cambridge English Language Assessment</a>, <a href="/wiki/British_Council" title="British Council">British Council</a>, <a href="/wiki/IDP_Education" title="IDP Education">IDP Education</a>.</td>
</tr>
<tr>
<th scope="row" style="text-align:left;">Knowledge/skill(s) tested</th>
<td>Listening, reading, writing and speaking of the <a href="/wiki/English_language" title="English language">English language</a>.</td>
</tr>
<tr>
<th scope="row" style="text-align:left;">Purpose</th>
<td>To assess the English language proficiency of non-native English speakers.</td>
</tr>
`;
// 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