const regex = /^(0|[1-9]+[0-9]*) (@[^@]+@ |)([A-Za-z0-9_]+)( [^\n\r]*|)$/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^(0|[1-9]+[0-9]*) (@[^@]+@ |)([A-Za-z0-9_]+)( [^\\n\\r]*|)$', 'gm')
const str = `0 @N1@ NOTE Lorem ipsum dolor sit amet
0 HEAD
1 SOUR FTM
2 VERS 22.2.6.950
1 DEST FTM
1 DATE 31 MAR 2017
1 CHAR UTF-8
3 _LINK http://www.facebook.com/1247584965
2 SOUR @S122@
3 PAGE Facebook update - David Hatch - 6/5/2013
3 _LINK http://www.facebook.com/1247584965
1 RESI
2 DATE BET 1935 AND 1993
2 PLAC San Francisco, California, USA
1 RESI
2 DATE 1994
2 PLAC San Francisco, California, USA
2 SOUR @S605@
3 DATA
4 TEXT Birth date: 20 Sep 1966 Birth place: Residence date: 1994
5 CONC Residence place: San Francisco, CA
1 RESI 106 Oakcrest Rd
2 DATE 26 MAR 2017
2 PLAC San Anselmo, Marin, California, USA
1 FAMS @F500@
1 FAMC @F656@
0 @I923@ INDI
1 NAME Vincent /Crilley/
1 SEX M
1 FAMS @F254@
0 @I5899@ INDI
1 NAME Marjorie Edna /Footitt/
2 SOUR @S506@
2 SOUR @S176@
2 SOUR @S168@
2 SOUR @S624@
3 DATA
4 TEXT Residence date: Residence place: USA
2 SOUR @S115@
3 PAGE Year: 1940; Census Place: St Paul, Ramsey, Minnesota; Roll: T627_1996;
4 CONC Page: 11A; Enumeration District: 90-73.
3 DATA
4 _TEXT Birth date: abt 1918 Birth place: North Dakota Residence date: 1
5 CONC Apr 1940 Residence place: St Paul, Ramsey, Minnesota, United States
2 SOUR @S607@
3 PAGE Year: 1920; Census Place: Carrington, Foster, North Dakota; Roll:
4 CONC T625_1334; Page: 13B; Enumeration District: 117; Image: .
3 DATA`;
// 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