Попытка выяснить, как определить, содержит ли строка любые символов на иврите без везения.Как определить, содержит ли строка символы на иврите, используя PHP?
Как это можно сделать?
Попытка выяснить, как определить, содержит ли строка любые символов на иврите без везения.Как определить, содержит ли строка символы на иврите, используя PHP?
Как это можно сделать?
Если исходная строка кодируется в кодировке UTF-8, тогда более простой подход будет использовать \p{Hebrew}
в регулярном выражении.
Вызов также должен иметь модификатор /u
.
= preg_match("/\p{Hebrew}/u", $string)
Не пропустили ли '' '' '\\ p'? – fge
@fge: Если вы хотите быть супер правильным :) Но '' \ p "' не является escape-кодом C, поэтому он правильно дойдет до библиотеки PCRE как '\ p' – mario
Хм, так что вам не нужно бежать обратная косая черта в строковых литералах PHP? Я этого не знал. – fge
map of the iso8859-8 character set. Диапазон E0 - FA, по-видимому, зарезервирован для иврита.
[\xE0-\xFA]
Для UTF-8, range reserved for Hebrew, как представляется, 0590 до 05FF.
[\u0590-\u05FF]
Вот пример матча регулярного выражения в PHP:
echo preg_match("/[\u0590-\u05FF]/", $string);
Самый простой подход был бы:
preg_match('/[א-ת]/',$string)
Например,
$strings = array("abbb","1234","aabbאאבב","אבבבב");
foreach($strings as $string)
{
echo "'$string' ";
echo (preg_match('/[א-ת]/',$string))? "has Hebrew characters in it." : "is not Hebrew";
echo "<br />";
}
Я считает эту ссылку поможет вам http://stackoverflow.com/questions/1694350/how-can-i -detect-hebrew-characters-both-iso8859-8-and-utf8-in-a-string-using-php –