Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP

Войти
Регистрация
Восстановить пароль
 
 
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
#1

Как найти слово через цикл? - PHP

15.05.2018, 16:32. Просмотров 352. Ответов 43
Метки нет (Все метки)

Всем привет! Можно ли найти слово таким образом:
Например: Есть текст: Привет как дела? У меня хорошо, а у тебя как?
И слово: как
В данном случае в обеих предложениях есть слово как(т.е. всего 2).
Можно ли сделать условие, если их больше 1, то начать цикл, который берет первое слово с текста и ставит после слова "как". Если такое нету, то берет второе слово и т.д, пока не получится "как дела"?
Т.е. должно получится так: Как Привет(нет), как как(нет), как дела(есть).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2018, 16:32
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как найти слово через цикл? (PHP):

Как найти слово в тексте полученный через file_get_contents? - PHP
Всем привет! Есть сайт с большим кол-вом слов(не только слова, есть и ссылки и заголовки). Эти слова я получаю на свой сайт через...

Как сделать цикл для того, чтобы достать лишь 1 слово? - PHP
Всем привет! Есть текст. Из этого текста я достаю 1 предложение, потом разбиваю на слова и помещаю эти слова в массив. Вопрос: Как...

Как найти слово в тексте без учета регистра? - PHP
Всем привет! Как найти слово в тексте без учета регистра? Пробовал так: <? if(preg_match("/".$otvet."/i",$text)){ echo "Все...

Выводит div через цикл так, как не нужно - PHP
Всем привет. Впервые сталкиваюсь с созданием сайта, точнее его переформированием. Суть следующая: 1. пхп файлик коннектится к БД и...

Как передать выбранное слово через FORM - PHP
Это кусок из выпадающего списка Каким образом можно передать слово Чёрный через form? <option...

Как найти ключевое слово и вывести 5 строк от слова вниз - PHP
Как найти ключевое слово и вывести 5 строк от слова вниз? Есть файл с данными записанными каждое с новой строки. Нужно найти в файле...

43
worldown
162 / 160 / 70
Регистрация: 22.06.2009
Сообщений: 469
15.05.2018, 18:01 #2
Цитата Сообщение от Риназ Посмотреть сообщение
Можно ли сделать условие, если их больше 1, то начать цикл, который берет первое слово с текста и ставит после слова "как". Если такое нету, то берет второе слово и т.д, пока не получится "как дела"?
зачем такие сложности? Что в конце концов хотите получить?
Мне кажется тут регулярные вырожения внесли бы ясность...
0
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
15.05.2018, 18:52  [ТС] #3
worldown, Есть текст, пользователь вводит слова(через пробел) и 1 предложение, эти слова записываются в массив. Если 2 или более этих слов есть в тексте, то найти наиболее подходящее добавив в слово 1 слово из предложения, который ввёл пользователь.
0
worldown
162 / 160 / 70
Регистрация: 22.06.2009
Сообщений: 469
15.05.2018, 20:38 #4
Риназ, хоть убей, но не могу понять логики
0
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
15.05.2018, 22:02  [ТС] #5
тогда постараюсь объяснить на примере:
Есть 2 текстовых поля. На первое поле пользователь вводит слова(любые)
раз два три четыре пять
, а на второе предложение(любое)
Сегодня в четыре часа утра показывали кино
И у меня есть большой текст.
Начинается проверка на наличие слов в тексте. В моем тексте 3 раза используется слово "четыре". И т.к. это слово используется больше одного раза, то начинаем взять по одной слове с предложения, который ввел пользователь. И делать это до тех пор, пока в тексте не найдем такую комбинацию слов или пока не закончится предложение. Должно получится так:
четыре Сегодня (такой комбинации в моем тексте нету, продолжаем).
четыре в (нету, продолжаем)
четыре часа (есть, останавливаем цикл и выводим эту комбинацию(четыре часа)).
0
worldown
162 / 160 / 70
Регистрация: 22.06.2009
Сообщений: 469
15.05.2018, 23:50 #6
Риназ, т.е введённые в первом поле слова сверяются со словами в предложении (второе поле), если находятся соответствия то найденное слово выводится вместе с словом стоящим справа от найденного слова. Так? А почему не со словом стоящим слева от найденного слова?
0
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
16.05.2018, 07:24  [ТС] #7
worldown, Да без разницы слева справа. Просто надо соответствие с моим текстом.
Если в моём тексте так:
Четыре часа (то справа),
а если так:
часа четыре (то слева).

Надо с обеих сторон проверить(если это возможно).
0
worldown
162 / 160 / 70
Регистрация: 22.06.2009
Сообщений: 469
16.05.2018, 07:57 #8
Риназ, а откуда программа знает что «часа» является неотъемлемой частью для слова «четыре»?
0
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
16.05.2018, 08:02  [ТС] #9
worldown, он не знает, он просто сравнивает, есть ли в тексте "четыре часа" если есть, то вывести. Это я сделал через prey_match.
0
worldown
162 / 160 / 70
Регистрация: 22.06.2009
Сообщений: 469
16.05.2018, 09:36 #10
Риназ,
Входные:
раз два три четыре пять
уже четыре раза смотрел фильм

Вывод:
четыре раза

*****************************
Входные:
раз два три четыре пять
я думаю часа два будет идти дождь

Вывод:
часа два

*****************************

Как программа грамматический верно выбрала подходящие связанные слова ?
0
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
16.05.2018, 12:14  [ТС] #11
worldown, она не по грамматики выбирает, а просто ищет совпадение. Если пользователь допустил ошибку: чытыре, то она выведет ошибку, т.е не найдёт.
0
worldown
162 / 160 / 70
Регистрация: 22.06.2009
Сообщений: 469
16.05.2018, 12:16 #12
Цитата Сообщение от Риназ Посмотреть сообщение
она не по грамматики выбирает, а просто ищет совпадение.
В таком случае работать будет так
Входные:
раз два три четыре пять
уже четыре раза смотрел фильм

Вывод:
четыре

*****************************
Входные:
раз два три четыре пять
я думаю часа два будет идти дождь

Вывод:
два

*****************************
0
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
16.05.2018, 12:18  [ТС] #13
worldownда, можно и так.
0
worldown
162 / 160 / 70
Регистрация: 22.06.2009
Сообщений: 469
16.05.2018, 12:35 #14
Риназ, т.е вам нужно так?
******************
Входные:
раз два три четыре пять
я думаю часа два будет идти дождь потом три часа светить солнце

Вывод:
два три
0
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
16.05.2018, 12:39  [ТС] #15
worldown, нет, надо вывести только два или три. Для этого надо сравнить, как я описал выше.
0
16.05.2018, 12:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2018, 12:39
Привет! Вот еще темы с ответами:

Как называется выражение <<<слово . слово; - PHP
Как эту запись правильно назвать? Оператором, конструкцией языка или ещё как? &lt;?php $a = &lt;&lt;&lt;qwertyuiop content... ...

Как распечатать всё из таблицы через DataTable через цикл - C#
Как распечатать всё из таблицы через DataTable? lb2.Text = row2.ToString(); Если так делать, то печатает запись под индексом 4. Мне...

Найти сумму через цикл - C++
Что здесь неправильно? #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;clocale&gt; #include &lt;math.h&gt; using namespace std; ...

Как в открытом текстовом файле найти слово и удалить строку которая содержит это слово? - C#
Как в открытом текстовом файле найти слово и удалить строку которая содержит это слово? C#


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru