const regex = /SetVariable>[\w\n\t\s=\":<>\/\-_.]*?stringValue=\"([\w\n\t\s=\":<>\/\-_.]*?)\"\/>[\w\n\t\s=\":<>\/\-_.]*?(?!booleanValue)[\w\n\t\s=\":<>\/\-_.]*?VariableToSet stringValue=\"serviceName\"[\w\n\t\s=\":<>\/\-_.]*?L7p:SetVariable>/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('SetVariable>[\\w\\n\\t\\s=\\":<>\\\/\\-_.]*?stringValue=\\"([\\w\\n\\t\\s=\\":<>\\\/\\-_.]*?)\\"\\\/>[\\w\\n\\t\\s=\\":<>\\\/\\-_.]*?(?!booleanValue)[\\w\\n\\t\\s=\\":<>\\\/\\-_.]*?VariableToSet stringValue=\\"serviceName\\"[\\w\\n\\t\\s=\\":<>\\\/\\-_.]*?L7p:SetVariable>', 'gm')
const str = ` <L7p:VariableToSet stringValue="dateTo"/>
</L7p:SetVariable>
<L7p:SetVariable>
<L7p:Base64Expression stringValue="UmljZXJjYURvY3VtZW50aURpc3BvbmliaWxpSFhFcG9zdFNQ"/>
<L7p:Enabled booleanValue="false"/>
<L7p:VariableToSet stringValue="serviceName"/>
</L7p:SetVariable>
<L7p:Include>
<L7p:Enabl
<L7p:Base64Expression stringValue="Q1RUUklCVVQ="/>
<L7p:VariableToSet stringValue="SpCodeTablesSP.inputdata.TableCodeId"/>
</L7p:SetVariable>
<L7p:SetVariable>
<L7p:Base64Expression stringValue="U3BDb2RlVGFibGVzU1A="/>
<L7p:VariableToSet stringValue="serviceName"/>
</L7p:SetVariable>
<L7p:Include>
<L7p:Pol`;
// 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