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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск состава слова

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
vasya89
Отправлено: 17 Мая, 2019 - 13:19:25
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2019  


Помог: 0 раз(а)




Приветствую!

Нужно написать функцию на регулярном выражении для поиска в слове его состава.

(Отредактировано автором: 03 Июля, 2019 - 19:24:17)

 
 Top
Строитель
Отправлено: 17 Мая, 2019 - 14:24:24
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)





Хотел написать вам ответ, да не понял с двух прочтений, что же требуется искать в строке
Радость
 
 Top
LIME
Отправлено: 17 Мая, 2019 - 14:34:11
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Строитель могу подсказать а ты напиши)
из частей строим массив-дерево посимвольно для каждой из частей
ключ массива это буква, значение это флаг-признак окончания части и следующие элементы
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 ))
 
 Top
Строитель
Отправлено: 17 Мая, 2019 - 14:43:33
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




LIME, спс )
Но ТС-у нужно же именно PCRE реализация. Да и мне проще регулярками обойтись, нежели строить дерево... Я просто не въехал в задачу, хотел быстренько набросать шаблон, а-н-нет, не тут-то было ))
 
 Top
vasya89
Отправлено: 17 Мая, 2019 - 14:47:14
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2019  


Помог: 0 раз(а)




Строитель пишет:

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


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

Буду благодарен любому варианту.

(Отредактировано автором: 03 Июля, 2019 - 19:27:10)

 
 Top
Строитель
Отправлено: 17 Мая, 2019 - 15:22:55
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




vasya89, набросал такой вариант
Спойлер (Отобразить)
Но результирующий массив отличается от предложенного вами
Спойлер (Отобразить)
 
 Top
vasya89
Отправлено: 17 Мая, 2019 - 15:49:52
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2019  


Помог: 0 раз(а)




Спасибо за ответ.

(Отредактировано автором: 03 Июля, 2019 - 19:28:35)

 
 Top
Строитель
Отправлено: 17 Мая, 2019 - 16:08:45
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




vasya89, ещё попытка
Спойлер (Отобразить)
Я думаю, что такой результат можно и без регулярок достичь (если вместо preg_ использовать stripos)
 
 Top
LIME
Отправлено: 17 Мая, 2019 - 16:18:39
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Строитель нее)) не все так просто
 
 Top
Строитель
Отправлено: 17 Мая, 2019 - 16:22:01
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




LIME пишет:
Строитель нее)) не все так просто
Ну тогда твоя очередь ))
 
 Top
LIME
Отправлено: 17 Мая, 2019 - 16:23:08
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ненене...мне на работе хватает такого развлечения прям очень
 
 Top
vasya89
Отправлено: 17 Мая, 2019 - 16:40:24
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2019  


Помог: 0 раз(а)




Строитель пишет:
vasya89, ещё попытка
Спойлер (Отобразить)
Я думаю, что такой результат можно и без регулярок достичь (если вместо preg_ использовать stripos)


Как-то не получается у меня объяснить вам. Возможно в вашем алгоритме нужно как-то преобразовать формат массива, а возможно он выдает не те результаты, не знаю.

(Отредактировано автором: 03 Июля, 2019 - 19:29:51)

 
 Top
LIME
Отправлено: 17 Мая, 2019 - 16:42:22
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




vasya89 пишет:
Как-то не получается у меня объяснить вам.
Строитель вот то же самое но сгруппированное
то есть
приставка+корень+суффикс
приставка2+корень2+суффикс2
 
 Top
vasya89
Отправлено: 17 Мая, 2019 - 16:58:42
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2019  


Помог: 0 раз(а)




LIME пишет:
vasya89 пишет:
Как-то не получается у меня объяснить вам.
Строитель вот то же самое но сгруппированное
то есть
приставка+корень+суффикс
приставка2+корень2+суффикс2


В возвращаемом массиве описываемая вами структура не сполна соответствует.

(Отредактировано автором: 03 Июля, 2019 - 19:31:18)

 
 Top
Строитель
Отправлено: 17 Мая, 2019 - 19:49:01
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




vasya89 пишет:
Как-то не получается у меня объяснить вам.
Так-то мне понятно, какой на выходе должен быть массив. Но мне не понятно, почему именно с помощью регулярок вам необходимо решать эту задачу. Ведь регулярки дают не много не такой результат. Может быть и есть какая-то возможность повлиять на это в регулярках, но я о ней не знаю.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB