setTokenIdBasePrefix($table, (string)$uid, $field, $structurePath); $elements = []; // Email: $parts = preg_split('/([\s\'":<>]+)([A-Za-z0-9._-]+[^-][@][A-Za-z0-9._-]+[.].[A-Za-z0-9]+)/', ' ' . $content . ' ', 10000, PREG_SPLIT_DELIM_CAPTURE); foreach ($parts as $idx => $value) { if ($idx % 3 === 2) { // Ignore invalid emails, which haven't been filtered out by regex. if (!filter_var($value, FILTER_VALIDATE_EMAIL)) { continue; } $tokenID = $this->makeTokenID((string)$idx); $elements[$idx] = []; $elements[$idx]['matchString'] = $value; if (in_array('subst', $this->parameters, true)) { $parts[$idx] = '{softref:' . $tokenID . '}'; $elements[$idx]['subst'] = [ 'type' => 'string', 'tokenID' => $tokenID, 'tokenValue' => $value, ]; } } } return SoftReferenceParserResult::create( substr(implode('', $parts), 1, -1), $elements ); } }