const regex = /(<nameID aor=\"sip:)(?:\+)?(.*)(@.*)\s(.*)(<name>)(")(.*)(")(<\/name>).*\R(.*)\R(.*)\R(.*)\R(.*)\R(.*)(<apkt:callingParty>false<\/apkt:callingParty>)/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(<nameID aor=\\"sip:)(?:\\+)?(.*)(@.*)\\s(.*)(<name>)(")(.*)(")(<\\\/name>).*\\R(.*)\\R(.*)\\R(.*)\\R(.*)\\R(.*)(<apkt:callingParty>false<\\\/apkt:callingParty>)', 'gm')
const str = `<nameID aor="sip:+13136622147@sip.quickenloans.com">
<name>"User 3136622147"</name>
</nameID>
<send>Xcl1Rts4RjtrMBY4Q1IZTQ==</send>
<associate-time>2021-04-20T13:57:07</associate-time>
<extensiondata xmlns:apkt="http://acmepacket.com/siprec/extensiondata">
<apkt:callingParty>false</apkt:callingParty>
<nameID aor="sip:3136622147@sip.quickenloans.com">
<name>"User 3136622147"</name>
</nameID>
<send>Xcl1Rts4RjtrMBY4Q1IZTQ==</send>
<associate-time>2021-04-20T13:57:07</associate-time>
<extensiondata xmlns:apkt="http://acmepacket.com/siprec/extensiondata">
<apkt:callingParty>false</apkt:callingParty>
<nameID aor="sip:136622147@sip.quickenloans.com">
<name>"User 3136622147"</name>
</nameID>
<send>Xcl1Rts4RjtrMBY4Q1IZTQ==</send>
<associate-time>2021-04-20T13:57:07</associate-time>
<extensiondata xmlns:apkt="http://acmepacket.com/siprec/extensiondata">
<apkt:callingParty>false</apkt:callingParty>`;
// 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