<?php
$string = 'My nAmE ïs Tom.';
// case-sensitive matching, including partial matching
$array = ['foo', 'nAmE'];
$regex[] = '/' . implode('|', array_map(fn($v) => preg_quote($v, '/'), $array)) . '/';
// case-insensitive matching, including partial matching
$array = ['foo', 'om'];
$regex[] = '/' . implode('|', array_map(fn($v) => preg_quote($v, '/'), $array)) . '/i';
// case-insensitive matching, full word matching only
$array = ['foo', 'tom'];
$regex[] = '/\b(?:' . implode('|', array_map(fn($v) => preg_quote($v, '/'), $array)) . ')\b/i';
// case-insensitive matching, full word matching only, multibyte aware
$array = ['foo', 'ïs'];
$regex[] = '/\b(?:' . implode('|', array_map(fn($v) => preg_quote($v, '/'), $array)) . ')\b/iu';
foreach ($regex as $r) {
if (preg_match($r, $string, $m)) {
echo "found '$m[0]' using $r on $string\n";
} else {
echo "no match using $r on $string\n";
}
}
preferences:
46.54 ms | 402 KiB | 5 Q