const findMentionsInStringAsUserIds = (string: string): { companyIds: string[]; userIds: string[] } => Array.from(string.matchAll(companyMentionReg)).reduce((result: { companyIds: string[]; userIds: string[] }, match: RegExpMatchArray) => ({ companyIds: match[1].startsWith('comp:') ? [...result.companyIds, match[1]] : result.companyIds, userIds: match[1].startsWith('comp:') ? result.companyIds: [...result.companyIds,match[1] ], }), {companyIds: [], userIds: []}) const toto = "This is a rest with one company, @@id@comp:123456@name@Agency@@ & @@id@654321@name@Company@@" findMentionsInStringAsUserIds(toto)