const regex = /^.*:\s+([A-Z].*)_(\D+)_(\d+).*/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^.*:\\s+([A-Z].*)_(\\D+)_(\\d+).*', 'gm')
const str = `dog-Cf-Nox1: Porites_lobata_1381 49.126 572 275 8 1 564 1 564 0.0 563
dog-Cf-Nox1: Porites_australiensis_5912 48.776 572 277 8 1 564 1 564 0.0 560
dog-Cf-Nox1: Astreopora_sp_20372 48.776 572 276 9 1 564 1 563 0.0 555
dog-Cf-Nox1: Montastraea_cavernosa_106939 48.148 567 279 7 5 564 6 564 0.0 555
dog-Cf-Nox1: Seriatopora_hystrix_66126 50.000 554 262 7 18 564 19 564 0.0 553
dog-Cf-Nox1: Porites_australiensis_4812 46.946 573 287 6 1 564 1 565 0.0 553
dog-Cf-Nox1: Stylophora_pistillata_7748 49.009 555 268 7 17 564 18 564 0.0 550
dog-Cf-Nox1: Porites_lobata_724 46.435 575 289 7 1 564 1 567 0.0 548
dog-Cf-Nox1: Acropora_digitifera_16260 46.935 571 288 7 1 564 1 563 0.0 538`;
const subst = `\1,\2,\3`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
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