const regex = /(^(?<date>\d{1,2}\/\d{1,2}\/\d{1,2}),\s(?<time>\d{1,2}:\d{1,2})\s-\s(?<user>.*?):\s)|(?<word>\w+(?:\'\w+)?|[\x{1F600}-\x{1F64F}]|[\x{1F300}-\x{1F5FF}]|[\x{1F680}-\x{1F6FF}]|[\x{2600}-\x{26FF}]|[\x{2700}-\x{27BF}]|[^\w\s~"!@#$%*()_+-=¹²³§ªº`^{}[\]<>,.;:?\/\\\|\n\r\t])/gmu;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(^(?<date>\\d{1,2}\\\/\\d{1,2}\\\/\\d{1,2}),\\s(?<time>\\d{1,2}:\\d{1,2})\\s-\\s(?<user>.*?):\\s)|(?<word>\\w+(?:\\\'\\w+)?|[\\x{1F600}-\\x{1F64F}]|[\\x{1F300}-\\x{1F5FF}]|[\\x{1F680}-\\x{1F6FF}]|[\\x{2600}-\\x{26FF}]|[\\x{2700}-\\x{27BF}]|[^\\w\\s~"!@#$%*()_+-=¹²³§ªº`^{}[\\]<>,.;:?\\\/\\\\\\|\\n\\r\\t])', 'gmu')
const str = `3/30/20, 17:06 - Me: Hi brow! I need to test some regex.
3/30/20, 17:06 - John Doe: 👍👍👍 Let's do it!
3/30/20, 17:08 - Me: ⚡️🦄🧀🏀🤪🎺🎪💾🚽📎💕💯✅ 🇯🇵 🕔➡️👶🚴👌👽
3/30/20, 17:10 - Someone: 🐵🙈🙉🙊🐒 We're talking emoji language?
https://regex101.com/library`;
// 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