Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Почему регулярное выражение не работает в php? (https://javascript.ru/forum/server/75710-pochemu-regulyarnoe-vyrazhenie-ne-rabotaet-v-php.html)

Artur_Hopf 31.10.2018 15:40

Почему регулярное выражение не работает в php?
 
Добрый день, переношу часть кода на сервер. Столкнулся с проблемой что php не обрабатывает регулярку так же как и javascript.


В js было:
var test = 'Петров С.В.';
var array = test.split(/^\s*([А-ЯЁ]\S+)\s+([А-ЯЁ])\s*\.\s*([А-ЯЁ])\s*\.\s*([\s\S]*?)\s*$/);
alert(array);


На сайте https://regexr.com/ эта регулярка тоже отрабатывает.

Но вот когда я переношу ее в php на функцию preg_split()

http://php.net/manual/ru/function.preg-split.php

не работает
$test = 'Петров С.В.';
$array = preg_split('/^\s*([А-ЯЁ]\S+)\s+([А-ЯЁ])\s*\.\s*([А-ЯЁ])\s*\.\s*([\s\S]*?)\s*$/', $test);
print_r($array);


Может кто понимает что не так? :-?

laimas 31.10.2018 16:00

А что просто разбить по пробелу, удалив крайние нельзя?

Artur_Hopf 31.10.2018 16:07

laimas,
Нет, там могут быть просто слова какие нибудь, а не фамилии.
Эта регулярка именно отлавливает, слово пробел буква точка пробел буква точка. Ну или как то так, давно она писалась, возможно даже на этом форуме.

laimas 31.10.2018 16:11

Цитата:

Сообщение от Artur_Hopf
Нет, там могут быть просто слова какие нибудь, а не фамилии.

Ну так на здоровье, разбивайте - Ёклмн Ь.Ь.


Часовой пояс GMT +3, время: 06:57.