const regex = /^(?=\s*<dd3:[^>]*>).*?>([^< ]+)</gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^(?=\\s*<dd3:[^>]*>).*?>([^< ]+)<', 'gm')
const str = `PUT /mg/co.xml HTTP/1.1
Host: 19.16.7.59
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gehko/20100101 Firefox/31.0
<?xml version="1.0" encoding="UTF-8"?>
<!-- THIS DATA SUBJECT TO DISCLAIMER(S) INCLUDED WITH THE PRODUCT OF ORIGIN. -->
<io:zzzz xmlns:io="http://kfj/ledm/iomgmt/2008/11/30" xmlns:dd="http://jkfhkj/dictionaries/1.0/" xmlns:dd3="http://jfja/dictionaries/2009/04/06" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jcjhjk/ledm/iomgmt/2008/11/30 ../../schemas/gfjbj.xsd">
<io:aaaa>
<dd3:bbbb>hjgjg</dd3:bbbb>
</io:aaaa>
<io:ccccc>
<io:dddd>
<dd3:ffff>15.34.2.5</dd3:ffff>
</io:dddd>
<io:eeee>
<dd3:gggg>67</dd3:gggg>
</io:eeee>
<io:iiii>
<dd3:jjjj><script>jgfjkgkj</script></dd3:jjjj>
</io:iiii>
</io:cccc>
</io:zzzz>`;
// 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