Смешанные строки иврита и английского и поймать первые 10 символов до последнего слова
У меня смешанная строка на иврите и английском, и я хочу поймать первые 10 символов, не пропуская ни слова в середине. например:
>שלום is peace not a war
Я использую:
/^[a-zA-Z\-\u0590-\u05ff ]{1,10}\b/i
мой результат: שלום is [0-7]
без флага b результат: שלום is pe [0-9]
Требуемый результат: שלום is peace [0-12]
Спасибо
1 ответ
Решение
Ты можешь использовать \p{Hebrew}
свойство, соответствующее символам иврита
$re = '/^[a-zA-Z\p{Hebrew} ]{10,}?\b/mu';
$str = "שלום is peace not a war";
preg_match_all($re, $str, $matches);
print_r($matches[0]);