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 :: Вытащить из предложения все слова
Разбивает предложение на слова через "," и записывает их все в одно поле meta_k
Нужно вытащить из предложения все слова больше 4-х букв и записать их каждое в отдельное поле бд.
kotyara1979
Отправлено: 07 Ноября, 2014 - 16:30:32
Частый гость
Покинул форум
Сообщений всего: 247
Дата рег-ции: Окт. 2012
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
\W\w{4,}\W
из середины таскать не будем же?
и пожалуй более 4 символов нам тоже нужны (Добавление) MAXUS извини))
я тоже не так давно поднатаскался))
MAXUS
Отправлено: 08 Ноября, 2014 - 17:41:22
Посетитель
Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011
Помог: 7 раз(а)
LIME пишет:
\W\w{4,}\W
из середины таскать не будем же?
и пожалуй более 4 символов нам тоже нужны (Добавление) MAXUS извини))
я тоже не так давно поднатаскался))
Я там на 5 исправил. А насчет из середины. В каком варианте string такое возможно?
Задача была: "вытащить из предложения все слова больше 4-х букв" (Добавление)
Единственное, что я бы еще сделал с массивом - это убрал повторяющиеся значения...
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
0 - будут выбраны только четко размером 5
именно 5 а не 4(зря исправил)
1 - выбраны будут только если следом идет символ слова
2 - если слово длиной в 12 символов будут выбраны обе части этого слова(оно будет разбито что неправильно)
короче надо элементарно проставить границы чтоб они не были символами слова что я показал как
и нужно чтоб не четко шло количество символов а от 4 и более что я тоже показал
не проверял но не думаю что есть ошибки в моей регулярке (Добавление)
3 - если слово короче 12 но длиннее 6 то будут выбраны только первые 5 символов(5 а не 4) (Добавление)
хотя нет
выберутся 6 символов (Добавление) MAXUS спасибо? нет? )) (Добавление)
еще не забудем о конце строки
MAXUS
Отправлено: 08 Ноября, 2014 - 17:59:13
Посетитель
Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011
Помог: 7 раз(а)
LIME пишет:
MAXUS спасибо? нет? ))
Ты прости, но я из сказанного тобой нифига не понял. Ты решаешь свои ошибки. Регулярка у меня:
/\w{5}\w*/sui
Присмотрись внимательно. Все, что ты сказал, ее не касается. Она работает, как надо. А ты ее обрезал и начал решать возникшие вследствие этого проблемы (Добавление)
lex555 пишет:
Нужно вытащить из предложения все слова больше 4-х букв и записать их каждое в отдельное поле бд.
Нормально выдирает ключевые слова более 4-х символов, при этом они не дублируются.
LIME
Отправлено: 08 Ноября, 2014 - 18:04:06
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
нет нет и еще раз нет
описанные проблемы касаются именно твоей регулярки
присмотрись еще раз
если я ошибся пиши (Добавление)
поправка
\W(\w{4,})\W
чтоб граничные символы не попали
берем только $1
MAXUS
Отправлено: 08 Ноября, 2014 - 18:15:30
Посетитель
Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011
Помог: 7 раз(а)
LIME пишет:
нет нет и еще раз нет
описанные проблемы касаются именно твоей регулярки
присмотрись еще раз
если я ошибся пиши
Или я недогоняю, или ты, или одно из двух.
"0 - будут выбраны только четко размером 5" Нет. Будут выбраны все слова более 4-х букв.
"1 - выбраны будут только если следом идет символ слова" Нет. Будут выбраны ВСЕ слова, которые состоят из \w, т.е. символ, цифра или подчеркивание.
"2 - если слово длиной в 12 символов будут выбраны обе части этого слова(оно будет разбито что неправильно)" Нет. Будет выбраны только слова более 4-х букв. Никаких разбивок на 2 слова не будет.
"3 - если слово короче 12 но длиннее 6 то будут выбраны только первые 5 символов(5 а не 4)" Нет. Будет выбрано все слово.
"не проверял но не думаю что есть ошибки в моей регулярке"
Ты мою лучше проверь.
\w{5}\w*/sui
Будут выбраны все слова, которые состоят из \w{5} пяти символов и еще \w*, т.е. пяти символов+любого количества символов. И все равно в конце, середине или начале строки.
LIME
Отправлено: 08 Ноября, 2014 - 18:18:40
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
не поленился проверил
ты прав
чет я не догнал тут...завтра пересмотрю
сорь за лишний шум (Добавление)
но 5 на 4 надо сменить
слова из 4 символов твоё не находит
MAXUS
Отправлено: 08 Ноября, 2014 - 18:24:00
Посетитель
Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011
Помог: 7 раз(а)
LIME пишет:
не поленился проверил
ты прав
чет я не догнал тут...завтра пересмотрю
сорь за лишний шум (Добавление)
но 5 на 4 надо сменить
слова из 4 символов твоё не находит
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.