Home > Software design >  Create array of regex matches javascript
Create array of regex matches javascript

Time:09-26

I want to create an array of matches for my regex expression in javascript.

It should look like: ['<:S_egirl:1023714296590499882>', '<a:eee:1023672889490284606>'] However, my code currently only makes an array with 1 item which includes all the matches.

The expression is: /<:. :(\d )>/gm

And my code is const parsed_emotes = [].concat(emotes.match(/<:. :(\d )>/gm)); console.log(parsed_emotes);

I've been stuck on this for hours, any help is appreciated.

CodePudding user response:

Make your . non-greedy with ?. Compare the output of these two matches:

'<:hello:1234> <:hello:1234>'.match(/<:. :(\d )>/gm)
// Produces ['<:hello:1234> <:hello:1234>']

Vs a non-greedy match:

'<:hello:1234> <:hello:1234>'.match(/<:. ?:(\d )>/gm)
// Produces ['<:hello:1234>', '<:hello:1234>']
  • Related