u modifier를 이용하여 정규표현식에 유니코드를 사용할 수 있음.
유니코드에 정의된 언어셋별로도 활용할 수 있어 유용할 듯.
$s = 'a가韓あアb나灭いイ';
$scripts = array(
'Hangul',
'Hiragana',
'Katakana',
'Han'
);
foreach ($scripts as $script) {
$pattern = "/\p{".$script."}/u";
preg_match_all($pattern, $s, $m);
printf("[%s]\n", $script);
foreach ($m[0] as $k=>$ch) {
printf("[%d] %s\n", $k, $ch);
}
echo "\n";
}
// 결과
/*
[Hangul]
[0] 가
[1] 나
[Hiragana]
[0] あ
[1] い
[Katakana]
[0] ア
[1] イ
[Han]
[0] 韓
[1] 灭
*/
언어셋 외에도 활용 케이스가 어마어마함.
[참고]
https://www.php.net/manual/en/regexp.reference.unicode.php
https://www.regular-expressions.info/unicode.html