Да, 。
(U + 3002, IDEOGRAPHIC FULL STOP ) - это совершенно другой символ, чем .
(U + 002E, FULL STOP ).Если вы хотите выяснить, содержит ли строка один из перечисленных символов, вы можете использовать регулярные выражения:
preg_match('/[.!?;。]/u', $str, $match)
Это вернет либо 0
, либо 1
, а $match
будет содержать совпаденияперсонаж.При этом важно, чтобы ваша строка в $str
была правильно закодирована в UTF-8.
Если вы хотите сопоставить любой символ пунктуации Unicode, вы можете использовать шаблон \p{P}
для описания Unicode свойство символа вместо:
/\p{P}/u