Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Поиск состава слова
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Поиск состава слова

Страниц (2): [1] 2 »
 

1. vasya89 - 17 Мая, 2019 - 13:19:25 - перейти к сообщению
Приветствую!

Нужно написать функцию на регулярном выражении для поиска в слове его состава.
2. Строитель - 17 Мая, 2019 - 14:24:24 - перейти к сообщению

Хотел написать вам ответ, да не понял с двух прочтений, что же требуется искать в строке
Радость
3. LIME - 17 Мая, 2019 - 14:34:11 - перейти к сообщению
Строитель могу подсказать а ты напиши)
из частей строим массив-дерево посимвольно для каждой из частей
ключ массива это буква, значение это флаг-признак окончания части и следующие элементы
PHP:
скопировать код в буфер обмена
  1.         $tree = [//приставки
  2.             'a' => [
  3.                 'is_end' => true,
  4.                 'next' => [
  5.                     'a' => ...,
  6.                     'b' => ...,
  7.                     'c' => ...,
  8.                 ]
  9.             ],
  10.             ...
  11.         ];

потом идешь параллельно по слову и по деревьям
если is_end => true, значит добавляешь часть в варианты и идешь дальше пока не кончится дерево
по сути это конечный автомат на котором и работают PCRE ))
4. Строитель - 17 Мая, 2019 - 14:43:33 - перейти к сообщению
LIME, спс )
Но ТС-у нужно же именно PCRE реализация. Да и мне проще регулярками обойтись, нежели строить дерево... Я просто не въехал в задачу, хотел быстренько набросать шаблон, а-н-нет, не тут-то было ))
5. vasya89 - 17 Мая, 2019 - 14:47:14 - перейти к сообщению
Строитель пишет:

Хотел написать вам ответ, да не понял с двух прочтений, что же требуется искать в строке
Радость


Попробую описать. Есть исходная строка содержащая слово. Нужно найти состав слова.

Буду благодарен любому варианту.
6. Строитель - 17 Мая, 2019 - 15:22:55 - перейти к сообщению
vasya89, набросал такой вариант
Спойлер (Отобразить)
Но результирующий массив отличается от предложенного вами
Спойлер (Отобразить)
7. vasya89 - 17 Мая, 2019 - 15:49:52 - перейти к сообщению
Спасибо за ответ.
8. Строитель - 17 Мая, 2019 - 16:08:45 - перейти к сообщению
vasya89, ещё попытка
Спойлер (Отобразить)
Я думаю, что такой результат можно и без регулярок достичь (если вместо preg_ использовать stripos)
9. LIME - 17 Мая, 2019 - 16:18:39 - перейти к сообщению
Строитель нее)) не все так просто
10. Строитель - 17 Мая, 2019 - 16:22:01 - перейти к сообщению
LIME пишет:
Строитель нее)) не все так просто
Ну тогда твоя очередь ))
11. LIME - 17 Мая, 2019 - 16:23:08 - перейти к сообщению
ненене...мне на работе хватает такого развлечения прям очень
12. vasya89 - 17 Мая, 2019 - 16:40:24 - перейти к сообщению
Строитель пишет:
vasya89, ещё попытка
Спойлер (Отобразить)
Я думаю, что такой результат можно и без регулярок достичь (если вместо preg_ использовать stripos)


Как-то не получается у меня объяснить вам. Возможно в вашем алгоритме нужно как-то преобразовать формат массива, а возможно он выдает не те результаты, не знаю.
13. LIME - 17 Мая, 2019 - 16:42:22 - перейти к сообщению
vasya89 пишет:
Как-то не получается у меня объяснить вам.
Строитель вот то же самое но сгруппированное
то есть
приставка+корень+суффикс
приставка2+корень2+суффикс2
14. vasya89 - 17 Мая, 2019 - 16:58:42 - перейти к сообщению
LIME пишет:
vasya89 пишет:
Как-то не получается у меня объяснить вам.
Строитель вот то же самое но сгруппированное
то есть
приставка+корень+суффикс
приставка2+корень2+суффикс2


В возвращаемом массиве описываемая вами структура не сполна соответствует.
15. Строитель - 17 Мая, 2019 - 19:49:01 - перейти к сообщению
vasya89 пишет:
Как-то не получается у меня объяснить вам.
Так-то мне понятно, какой на выходе должен быть массив. Но мне не понятно, почему именно с помощью регулярок вам необходимо решать эту задачу. Ведь регулярки дают не много не такой результат. Может быть и есть какая-то возможность повлиять на это в регулярках, но я о ней не знаю.

 

Powered by ExBB FM 1.0 RC1