const regex = new RegExp('(\\d+)\\s((\\d+)\\s(.*)\\s?(St|Rd|Ave|Dr|Pl|Sq|Ln))\\s?(W|E|N|S)?,\\s(.*),\\s((\\w+)\\s(.*))\\n', 'g')
const str = `1 1067 Niagara Stone Rd, Niagara-On-The-Lake, ON L0S 1J0
2 4260 Mountainview Rd, Lincoln, ON L0R 1B2
4 1091 Hutchinson Rd, Haldimand, ON N0A 1K0
16 3753 Quarry Rd, Lincoln, ON L0R 1B2
19 131 River Rd, Haldimand, ON N1A 2W3
20 111 Garrison Village Dr, Niagara-On-The-Lake, ON L0S 1J0
21 3678 Victoria Ave, Lincoln, ON L0R 2C0
24 3751 King St, Lincoln, ON L0R 2C0
34 2878 Holland Rd, Thorold, ON L0S 1E6
35 103 Overholt Rd, Pelham, ON L0S 1M0
47 3930 Cherry Ave, Lincoln, ON L0R 1B1
48 4016 Mountain St, Lincoln, ON L0R 1B7
49 135 Taylor Rd, Niagara-On-The-Lake, ON L0S 1J0
50 5943 Sylvia Pl, Niagara Falls, ON L2G 1S9
51 6863 Lundys Ln, Niagara Falls, ON L2G 1V7
55 290 John St E, Niagara-On-The-Lake, ON L0S 1J0
56 5600 King St W, Lincoln, ON L0R 1B3
63 3900 Cherry Ave, Lincoln, ON L0R 2C0
64 282 Ridge Rd N, Fort Erie, ON L0S 1N0
65 4352 Mountainview Rd, Lincoln, ON L0R 1B2
74 1339 Lakeshore Rd, Niagara-On-The-Lake, ON L0S 1J0
75 1425 Lakeshore Rd, Niagara-On-The-Lake, ON L0S 1J0
82 400 Main St W, Grimsby, ON L3M 1T2
83 3620 Moyer Rd, Lincoln, ON L0R 2C0
87 1625 Haist St, Pelham, ON L0S 1E0
91 905 Canborough Rd, Pelham, ON L0S 1C0`;
// 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