3v4l.org

run code in 300+ PHP versions simultaneously
<?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"; } }
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
found 'nAmE' using /foo|nAmE/ on My nAmE ïs Tom. found 'om' using /foo|om/i on My nAmE ïs Tom. found 'Tom' using /\b(?:foo|tom)\b/i on My nAmE ïs Tom. found 'ïs' using /\b(?:foo|ïs)\b/iu on My nAmE ïs Tom.

preferences:
93.55 ms | 403 KiB | 123 Q