const regex = /<recode>([^#]*?)<\/sumfa>/gmi;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('<recode>([^#]*?)<\\\/sumfa>', 'gmi')
const str = `<item>
<imd>
<fs_ar>T</fs_ar>
<fs_as>T</fs_as>
<fs_af>T</fs_af>
<fs_aic>T</fs_aic>
<fs_air>T</fs_air>
<kid>601</kid>
</imd>
<title>whatever</title>
<recode>200</recode>
<reto>312</reto>
<doto>312</doto>
<pathrela>whatever.html</pathrela>
<realext>.php</realext>
<kindext>.html</kindext>
<charset>iso-8859-1</charset>
<mime>text/html</mime>
<sizeex>5633</sizeex>
<sizeco>T</sizeco>
<impsco>1.602941</impsco>
<impscosca>1.455153</impscosca>
<chgscosca>1.455153</chgscosca>
<lkstae>1</lkstae>
<lnkta>3</lnkta>
<sumfa>1</sumfa>
</item>
<item>
<imd>
<fs_ar>T</fs_ar>
<fs_as>T</fs_as>
<fs_af>T</fs_af>
<fs_aic>T</fs_aic>
<fs_air>T</fs_air>
<kid>23</kid>
</imd>
<title>Whats UP Dog</title>
<recode>200</recode>
<reto>219</reto>
<doto>219</doto>
<pathrela>wud.html</pathrela>
<realext>.html</realext>
<kindext>.html</kindext>
<charset>iso-8859-1</charset>
<mime>text/html</mime>
<sizeex>6252</sizeex>
<sizeco>T</sizeco>
<lastmo>2013-04-18 08:51:58</lastmo>
<impsco>398.818604</impsco>
<impscosca>9.11296</impscosca>
<chgscosca>8.657311</chgscosca>
<lksta>2</lksta>
<lkstae>8</lkstae>
<lnkta>414</lnkta>
<sumfa>1</sumfa>
</item>`;
// 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