const regex = new RegExp('(PostgreSQL (?P<psql_major>\\d{1,2})\\.(?P<psql_minor>\\d{1,2})(?P<psql_opt_patch>\\.\\d{1,2})?, )?Aurora PostgreSQL release (?P<aurora_psql_major>\\d{1,2})\\.(?P<aurora_psql_minor>\\d{1,2})(?P<aurora_psql_opt_patch>\\.\\d{1,2})?(?P<release_or_deprecation>\\,\\s(?P<release_data>.*)|\\s\\(Deprecated on (?P<deprecation_date>.*)\\))?', 'mg')
const str = `PostgreSQL 12.6, Aurora PostgreSQL release 4.1 (Deprecated on July 15, 2022)
PostgreSQL 12.4, Aurora PostgreSQL release 4.0 (Deprecated on July 15, 2022)
Aurora PostgreSQL release 14.3.1, July 6, 2022
PostgreSQL 9.6.8, Aurora PostgreSQL release 1.2 (Deprecated on October 28, 2021)
PostgreSQL 9.6.8, Aurora PostgreSQL release 1.2.4
PostgreSQL 14.5, Aurora PostgreSQL release 1.2
Aurora PostgreSQL release 14.3.1, Deprecated on October 28, 2021)`;
// 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