Я хочу извлечь фразы на языке урду из строки, представленной пользователем в PHP. Для этого я попробовал следующий тестовый код:
$pattern = "#([\x{0600}-\x{06FF}]+\s*)+#u";
if (preg_match_all($pattern, $string, $matches, PREG_SET_ORDER)) {
print_r($matches);
} else {
echo 'No matches.';
}
Теперь, если, например, $string
содержит
In his books (some of which include دنیا گول ہے, آوارہ گرد کی ڈائری, and ابن بطوطہ کے تعاقب میں), Ibn-e-Insha has told amusing stories of his travels.
Я получаю следующий вывод:
Array
(
[0] => Array
(
[0] => دنیا گول ہے
[1] => ہے
)
[1] => Array
(
[0] => آوارہ گرد کی ڈائری
[1] => ڈائری
)
[2] => Array
(
[0] => ابن بطوطہ کے تعاقب میں
[1] => میں
)
)
Даже если я получаю желаемые совпадения (دنیا گول ہے
, آوارہ گرد کی ڈائری
и ابن بطوطہ کے تعاقب میں
), я также получаю нежелательные совпадения (ہے
, ڈائری
и میں
- каждый из которых на самом деле последнее слово его фразы). Кто-нибудь может указать, как я могу избежать нежелательных матчей?