const regex = /(?:[a-zA-Z\s]*:)\s*(.*)/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?:[a-zA-Z\\s]*:)\\s*(.*)', 'gm')
const str = `Type : Requirement
State : Implemented
Release : 3.1.9 / 3.4.0 *1
The AFTN Message processing shall base on the following external documents:
[ICAO_1] ICAO Annex 10
[ICAO_2] ICAO Doc 4444
[ICAO_3] ICAO Doc 7030
[ICAO_4] ICAO Doc 4444 PANS ATM Amendment No1 *1
[EURO_1] ADEXP documentation
[EURO_2] IFPS user manual
[CFMU_1] CFMU_AIC 12.08
[CFMU_2] CFMU 2012 REQUIREMENTS V1.42 *1
[CFMU_3] CFMU INTERFACE MANUAL FOR ICAO 2012 V1.32 *1
[AIDA_1] ICD FPL AIDA AFPS v40
[FIXM_1] http://www.fixm.aero/content/fixm-core-releases (FIXM v1.1)
*1 Due to mutually contradictory between ICAO and CFMU requirements, the documents from CFMU has a higher priority.`;
// 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