const regex = /(<svg\:a\s([\w\:]+\=\"[\w\.\/\:\_\-\s]+\"\s*)+>)(<svg\:rect (\w+\=\"\d+\"\s)+(width\=\"16\"\s|height\=\"16\"\s)+(\w+=\"[\w\s\.\-\:\#\;]+\") \/>)(<\/svg\:a>)(<svg\:a\s([\w\:]+\=\"[\w\.\/\:\-\s]+\"\s*)+>)(<svg\:text\s([\w\-]+\=\"[\d\w]+\"\s*)+>)([\w\.]+)(<\/svg:text><\/svg:a>)/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(<svg\\:a\\s([\\w\\:]+\\=\\"[\\w\\.\\\/\\:\\_\\-\\s]+\\"\\s*)+>)(<svg\\:rect (\\w+\\=\\"\\d+\\"\\s)+(width\\=\\"16\\"\\s|height\\=\\"16\\"\\s)+(\\w+=\\"[\\w\\s\\.\\-\\:\\#\\;]+\\") \\\/>)(<\\\/svg\\:a>)(<svg\\:a\\s([\\w\\:]+\\=\\"[\\w\\.\\\/\\:\\-\\s]+\\"\\s*)+>)(<svg\\:text\\s([\\w\\-]+\\=\\"[\\d\\w]+\\"\\s*)+>)([\\w\\.]+)(<\\\/svg:text><\\\/svg:a>)', 'g')
const str = `<svg:svg version="1.1" baseProfile="full" width="771" height="221" xmlns:svg="http://www.w3.org/2000/svg"><svg:a target="basefrm" xlink:href="../Sybase.Central.transitorio/table_dboah_causal_no_genuino.htm" title="table: dbo.ah_causal_no_genuino" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:rect rx="5" ry="5" x="78" y="24" width="16" height="16" style="fill:#0000FF; stroke:#0000FF; stroke-width:1; fill-opacity:0.5" /></svg:a><svg:a target="basefrm" xlink:href="../Sybase.Central.transitorio/table_dboah_causal_no_genuino.htm" title="table: dbo.ah_causal_no_genuino" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:text font-size="10" font-family="verdana" x="46" y="52">ah_causal_no_genuino</svg:text></svg:a><svg:line style="stroke:#808080;stroke-width:1" x1="320" y1="120" x2="86" y2="32" /><svg:a target="basefrm" xlink:href="../Sybase.Central.cob_ahorros/table_dboah_cuenta.htm" title="table: dbo.ah_cuenta" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:rect rx="5" ry="5" x="312" y="0" width="16" height="16" style="fill:#0000FF; stroke:#0000FF; stroke-width:1; fill-opacity:0.5" /></svg:a><svg:a target="basefrm" xlink:href="../Sybase.Central.cob_ahorros/table_dboah_cuenta.htm" title="table: dbo.ah_cuenta" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:text font-size="10" font-family="verdana" x="296" y="28">ah_cuenta</svg:text></svg:a><svg:line style="stroke:#808080;stroke-width:1" x1="320" y1="120" x2="320" y2="8" /><svg:a target="basefrm" xlink:href="../Sybase.Central.cob_ahorros_his/table_dboah_his_movimiento.htm" title="table: dbo.ah_his_movimiento" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:rect rx="5" ry="5" x="545" y="24" width="16" height="16" style="fill:#0000FF; stroke:#0000FF; stroke-width:1; fill-opacity:0.5" /></svg:a><svg:a target="basefrm" xlink:href="../Sybase.Central.cob_ahorros_his/table_dboah_his_movimiento.htm" title="table: dbo.ah_his_movimiento" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:text font-size="10" font-family="verdana" x="517" y="52">ah_his_movimiento</svg:text></svg:a><svg:line style="stroke:#808080;stroke-width:1" x1="320" y1="120" x2="553" y2="32" /><svg:a target="basefrm" xlink:href="../Sybase.Central.cobis/table_dbocl_catalogo.htm" title="table: dbo.cl_catalogo" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:rect rx="5" ry="5" x="78" y="74" width="16" height="16" style="fill:#0000FF; stroke:#0000FF; stroke-width:1; fill-opacity:0.5" /></svg:a><svg:a target="basefrm" xlink:href="../Sybase.Central.cobis/table_dbocl_catalogo.htm" title="table: dbo.cl_catalogo" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:text font-size="10" font-family="verdana" x="59" y="102">cl_catalogo</svg:text></svg:a><svg:line style="stroke:#808080;stroke-width:1" x1="320" y1="120" x2="86" y2="82" /><svg:a target="basefrm" xlink:href="../Sybase.Central.cobis/table_dbocl_tabla.htm" title="table: dbo.cl_tabla" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:rect rx="5" ry="5" x="312" y="50" width="16" height="16" style="fill:#0000FF; stroke:#0000FF; stroke-width:1; fill-opacity:0.5" /></svg:a><svg:a target="basefrm" xlink:href="../Sybase.Central.cobis/table_dbocl_tabla.htm" title="table: dbo.cl_tabla" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:text font-size="10" font-family="verdana" x="298" y="78">cl_tabla</svg:text></svg:a><svg:line style="stroke:#808080;stroke-width:1" x1="320" y1="120" x2="320" y2="58" /><svg:a target="basefrm" xlink:href="sp_dbosp_movimientos_genuinos.htm" title="stored procedure: dbo.sp_movimientos_genuinos" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:rect rx="5" ry="5" x="310" y="110" width="20" height="20" style="fill:#FF0000; stroke:#FF0000; stroke-width:1; fill-opacity:0.5" /></svg:a><svg:a target="basefrm" xlink:href="sp_dbosp_movimientos_genuinos.htm" title="stored procedure: dbo.sp_movimientos_genuinos" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:text font-size="10" font-family="verdana" x="275" y="140">sp_movimientos_genuinos</svg:text></svg:a><svg:a target="basefrm" xlink:href="../ExternalObjects/Sqr_Jubilacionesju_devolucion.htm" title="Sqr: Jubilaciones.ju_devolucion" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:rect rx="5" ry="5" x="137" y="162" width="16" height="16" style="fill:#B96A9A; stroke:#B96A9A; stroke-width:1; fill-opacity:0.5" /></svg:a><svg:a target="basefrm" xlink:href="../ExternalObjects/Sqr_Jubilacionesju_devolucion.htm" title="Sqr: Jubilaciones.ju_devolucion" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:text font-size="10" font-family="verdana" x="115" y="190">ju_devolucion</svg:text></svg:a><svg:line style="stroke:#808080;stroke-width:1" x1="320" y1="120" x2="145" y2="170" /><svg:a target="basefrm" xlink:href="../ExternalObjects/Sqr_Jubilacionesju_rendicion_asig_fam.htm" title="Sqr: Jubilaciones.ju_rendicion_asig_fam" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:rect rx="5" ry="5" x="487" y="162" width="16" height="16" style="fill:#B96A9A; stroke:#B96A9A; stroke-width:1; fill-opacity:0.5" /></svg:a><svg:a target="basefrm" xlink:href="../ExternalObjects/Sqr_Jubilacionesju_rendicion_asig_fam.htm" title="Sqr: Jubilaciones.ju_rendicion_asig_fam" xmlns:xlink="http://www.w3.org/1999/xlink"><svg:text font-size="10" font-family="verdana" x="453" y="190">ju_rendicion_asig_fam</svg:text></svg:a><svg:line style="stroke:#808080;stroke-width:1" x1="320" y1="120" x2="495" y2="170" /></svg:svg>`;
// 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