Используйте обратный класс, \P{Han}+
:
if (preg_match_all('/\P{Han}+/u', '道斯·麥克', $matches))
{
print_r($matches[0]); // => Array ( [0] => · )
}
См. PHP демо
В то время как \p{Han}
соответствует всем китайским символам, \P{Han}
соответствуетлюбой символ, отличный от этих символов.
То же самое относится и к другим классам свойств Unicode: для каждого \p{X}
существует обратный \P{X}
класс.\p{L}
соответствует любой букве Unicode, а \P{L}
соответствует любому символу, кроме буквы Unicode.Ср\p{N}
(цифры) - \P{N}
(не цифры), \p{S}
(символы) - \P{S}
(не символы) и т. Д.