Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 1
Регистрация: 15.02.2009
Сообщений: 16
1

Запрос: 'abc 123 xyz'. Нужно, чтобы EREGI засекла строки, в которых встречаются все эти слова.

06.03.2009, 15:39. Показов 1150. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Запрос: 'abc 123 xyz'.

Нужно, чтобы EREGI засекла строки, в которых встречаются все эти слова.

EREGI('abc|123|xyz',$MyString) работает, но она находит строки, в которых есть хоть одно слово из трёх, а мне нужно, чтобы только если все три слова есть.

EREGI('abc&123&xyz',$MyString) не работает.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2009, 15:39
Ответы с готовыми решениями:

Ввести две строки. Найти все слова из 1 строки, которые встречаются во 2. Написать все эти слова в 3 строку
Ввести две строки. Найти все слова из 1 строки, которые встречаются во 2. Написать все эти слова в...

Вывести все слова четной длины, у которых все буквы из первой половины слова встречаются во второй
Задача: Дана последовательность символов, состоящая из слов четной длины. Вывести на экран все...

Найти слова четной длины, у которых все буквы из первой половины слова встречаются во второй половине слова
Пожалуйста, помогите написать программу. Вот условие: Дана последовательность символов,...

Найдите в предложении все слова, в которых встречаются первые три буквы первого слова предложения.
здраствуйте нужна помощь в решении заранее спасибо 3.1. Найдите в предложении все слова, в...

1
0 / 0 / 0
Регистрация: 20.03.2009
Сообщений: 13
18.04.2009, 03:04 2
Честно сказать аналога 'и' я не нашел, а так на ум приходит пару вариантов покручёнее:
1) что-то вроде:
Код
eregi(eregi('(abc.*123.*xyz)|(abc.*xyz.*123)|
             (xyz.*123.*abc)|(xyz.*abc.*123)|
             (123.*xyz.*abc)|(123.*abc.*xyz)');
т.е. все варианты вазаимного расположения слов через 'или', а между словами любое количество любых символов, можно еще добавить и определения, что нужны не просто сочетания символов, а именно слова 'xyz', '123' и 'abc'. Правда, если совместных слов больше 3 - запаришься комбинации перебирать...

2) классический:
Код
if ((eregi('123',$MyString))&&('abc',$MyString)&&('xyz',$MyString)) {
}else{
}
тоже можно добавить определения поиска именно слов, а не символов.

3) немного подумав...
Код
    //перечисляем искомые слова через 'или' 
    //(можно добавить определения поиска только целых слов)
    preg_match_all('/abc|123|xyz/',$MyString,$ok);
    //массив $ok содержит все вхождения этих слов
    $unique=array_unique($ok[0]);//
    //получили массив $unique - содержащий только уникальные значения
    //т.е. удалили дубликаты
    $i=count($unique);//ну и if ($i==3), то все три слова имеются в наличии
P.S. гораздо проще увеличить кол-во искомых слов... :о)
если найдешь другие способы... напиши плз на CalmNad@tut.by
0
18.04.2009, 03:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2009, 03:04
Помогаю со студенческими работами здесь

Найти в предложении все слова, в которых встречаются первые три символа последнего слова предложения
"Найти в предложении все слова, в которых встречаются первые три символа последнего слова...

Определить количество букв Е, Ю и Я в введенном предложении. Слова, в которых эти буквы встречаются более одного раза поставить в начале предложения
Помогите пожалуйста с задачей, очень нужно. Там помимо основного задания еще нужно чтоб программа...

В заданном массиве строк найти все слова, в которых 2 раза встречается символ и вывести эти слова
не могу сообразить как написать цикл, в котором он выделяет слова, и потом выделяет из этих слов...

Заменить в строке все вхождения abc на 123
Попросили сделать простейшую программку (по информатике), вроде как шарю, но сейчас просто не могу...

Массив: Заменить в строке все вхождения xyz на abc
Дана строка s, содержащая не более 20 латинских букв, за которыми следуют пробелы. Заменить в этой...

Найти все слова текста, в которых буквы ‘a’ и ‘b’ встречаются максимальное число раз
помогите написать программу на Си Ввести массив строк символов (текст). Найти все слова текста,...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru