Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
129 / 50 / 8
Регистрация: 01.12.2013
Сообщений: 572
1

Как считать слово от 3 символов?

24.04.2014, 15:29. Показов 1511. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть скрипт который считает количество слов и их плотность в тексте в % (кому нужен полный скрипт тут http://pastebin.com/a6FcEw86) если кратко то работает так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
// чищу текст от спецсимволов
$clean = preg_replace('/[!~`@|.,:;?&)(\"><№#\\\%\\/^\'*$_]/u', '', $text);
 
// делаю массив из строки в виде слов разделённых пробелами
$massiv = explode(" ", $clean);
 
// сортирую полученный массив
$massiv=array_count_values($massiv);
arsort($massiv);
 
// считаю общее количество слов что бы потом разделить и посчитать процент
$sum = array_sum($massiv);
Вопрос: как сделать так что бы словами считались только те в которых 3 символа или больше?

Догадываюсь что для этого надо из строки $clean наверное убрать все элементы где меньше 3 символов. А потом уже остаток в массив объединять. Но как это сделать? Может регулярку доработать так что бы она меньше 3 символов всё убирала?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.04.2014, 15:29
Ответы с готовыми решениями:

Как считать слово из Textbox
Делаю приложение на Visual studio express. Нужно считать слово из Textbox и сравнить его так...

Как считать n-ое слово в строке
Как найти любое (n-ное) слово в строке? Слова(группа слов) разделяются запятыми

Как считать 5 и 8 слово из файла
Дан файл. Как считать пятое и восьмое слово из него?

Как считать слово из строки в файле?
Есть строки с данными о препаратах в текстовом файле в виде &quot;Наименование&quot; &quot;Цена&quot; &quot;Состав&quot;....

7
 Аватар для crautcher
2449 / 2299 / 597
Регистрация: 27.05.2011
Сообщений: 7,835
24.04.2014, 15:49 2
Цитата Сообщение от marrk Посмотреть сообщение
Вопрос: как сделать так что бы словами считались только те в которых 3 символа или больше?
PHP
1
2
3
4
5
<?
$text = "1 12 123 1234       123 12 1";
$clean = preg_replace('/[!~`@|.,:;?&)(\"><№#\\\%\\/^\'*$_]/u', '', $text);
preg_match_all('/[^\ ]{3,}/u', $clean, $clean);
var_dump($clean);
Код
array(1) {
  [0]=>
  array(3) {
    [0]=>
    string(3) "123"
    [1]=>
    string(4) "1234"
    [2]=>
    string(3) "123"
  }
}
1
129 / 50 / 8
Регистрация: 01.12.2013
Сообщений: 572
24.04.2014, 17:42  [ТС] 3
В целом работает, но применительно к этому скрипту при попытке установить preg_match_all в это место начинает ругаться на строку с $massiv = explode(" ", $clean);
0
 Аватар для crautcher
2449 / 2299 / 597
Регистрация: 27.05.2011
Сообщений: 7,835
24.04.2014, 18:03 4
Цитата Сообщение от marrk Посмотреть сообщение
$massiv = explode(" ", $clean);
Ну так у тебя уже есть массив вместо строки, прег матч его сделал
0
129 / 50 / 8
Регистрация: 01.12.2013
Сообщений: 572
24.04.2014, 18:08  [ТС] 5
Чё-то этот массив ему не прокатывает. Сделал так:

PHP
1
2
3
4
5
6
7
    $clean = preg_replace('/[!~`@|.,:;?&)(\"><№#\\\%\\/^\'*$_]/u', '', $text);
    preg_match_all('/[^\ ]{3,}/u', $clean, $massiv);
 
// $massiv = explode(" ", $clean);
 
    $massiv=array_count_values($massiv);
    arsort($massiv);
Пишет Can only count STRING and INTEGER values! в строке $massiv=array_count_values($massiv);
А если комментарий снять то работает без ошибок, но к сожалению меньше 3 по-прежнему считает...
0
 Аватар для crautcher
2449 / 2299 / 597
Регистрация: 27.05.2011
Сообщений: 7,835
24.04.2014, 18:13 6
Лучший ответ Сообщение было отмечено marrk как решение

Решение

там массив массиве
PHP
1
2
3
4
    $clean = preg_replace('/[!~`@|.,:;?&)(\"><№#\\\%\\/^\'*$_]/u', '', $text);
    preg_match_all('/[^\ ]{3,}/u', $clean, $massiv); 
    $massiv = isset($massiv[0]) ? $massiv[0] : explode(" ", $clean); 
    $massiv=array_count_values($massiv)
0
129 / 50 / 8
Регистрация: 01.12.2013
Сообщений: 572
24.04.2014, 18:20  [ТС] 7
Всё работает! Прочитал я хэлп по isset но так и особо понял что вы сделали ))
Не могли бы вы пояснить немного 3 строку по возможности?
0
 Аватар для crautcher
2449 / 2299 / 597
Регистрация: 27.05.2011
Сообщений: 7,835
24.04.2014, 18:27 8
Подстарховал, если прег метч не справится, хотя не думаю, что такое возможно

Добавлено через 1 минуту
В теории прег матч должна создать $massiv[0], но если она вызовет ошибку, то $massiv[0] не будет и тогда мы страхуем експлоудом
0
24.04.2014, 18:27
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.04.2014, 18:27
Помогаю со студенческими работами здесь

Как считать первое слово из каждой строки?
Как считать первое слово из каждой строки из файла и записать в другой файл столбиком? Пробовал...

Считать из первого файла ключевое слово и цвет и выделить слово во втором файле
считать из 1 файла ключевое слово и цвет и выделить слово во 2ом файле. файлы html. #include...

Как считать слово заключенное между статическими скобками
Доброе всем время суток Есть вопрос )) Как с сайта считать нужное слово заключенное между...

Как считать слово из файла в поле структуры до запятой?
есть текстовый файл Петров, Иван, Федорович, 1, 1994,Ч ; Сидоров,Петр,Михайлович, 2, 1994,Ч ;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Rust или Go? А может C++?
hw_wired 28.01.2025
С каждой новой технологией или методологией появляются новые языки программирования, призванные решать конкретные задачи либо улучшать аспекты производительности и безопасности. Среди множества. . .
Fortran и WinAPI: как создать приложение с графическим интерфейсом
hw_wired 28.01.2025
Fortran — это один из старейших высокоуровневых языков программирования, широко используемый в науке и инженерии уже несколько десятилетий. Его название происходит от "Formula Translation" (перевод. . .
Списки в Haskell
hw_wired 28.01.2025
Haskell является функциональным языком программирования, который отличается лаконичностью синтаксиса и мощными абстракциями. Важным концептом в Haskell являются списки — упорядоченные коллекции. . .
Функции высшего порядка в Haskell
hw_wired 28.01.2025
Haskell – это современный функциональный язык программирования, который получил широкое распространение благодаря своей выразительности и мощным абстракциям. Одной из ключевых особенностей Haskell. . .
Как в цикле обойти все поля объекта в JavaScript
bytestream 28.01.2025
Объекты в JavaScript представляют собой фундаментальные структуры данных, которые позволяют хранить и организовывать связанную информацию в виде пар ключ-значение. Каждый объект можно представить как. . .
Как выбрать строки в DataFrame по значению столбца в Pandas
bytestream 28.01.2025
В области анализа данных библиотека Pandas стала незаменимым инструментом для работы с табличными данными в Python. Эта мощная библиотека предоставляет множество функций для эффективной обработки и. . .
Как сделать перенос строки в Bash
bytestream 28.01.2025
При работе с командной оболочкой Bash разработчики часто сталкиваются с необходимостью форматирования текстового вывода, где ключевую роль играет правильное управление переносами строк. Умение. . .
Поиск подстроки в строке с помощью Bash
bytestream 28.01.2025
Поиск подстроки в строке является одной из важных задач в программировании и обработке текстов. Применение такого поиска можно найти в самых разных областях, от анализа данных до разработки. . .
[golang] 169. Majority Element
alhaos 28.01.2025
Тут надо вернуть "мажористый" элемент который встречается в слайсе больше чем в половине случаев. По условиям задачи во входных данных такой элемент обязан присутствовать. / / . . .
Когда лучше использовать LinkedList вместо ArrayList в Java
bytestream 28.01.2025
При разработке Java-приложений выбор правильной структуры данных играет ключевую роль в обеспечении эффективности и производительности программы. ArrayList и LinkedList являются двумя. . .
Какой ответ HTTP лучше использовать: 403 Forbidden или 401 Unauthorized, когда недостаточно прав
bytestream 28.01.2025
В современной веб-разработке правильная обработка ошибок и точное информирование клиентов о статусе их запросов играют критическую роль в создании надежных и безопасных приложений. Особое внимание. . .
Как получить список всех файлов коммита в Git
bytestream 28.01.2025
Система контроля версий Git представляет собой мощный инструмент для управления изменениями в программном коде и других файлах проекта. В основе работы Git лежит концепция коммитов - снимков. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru