|
|
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток! Появилась такая проблема: необходимо составить регулярное выражение, которое проверяло бы: содержатся ли в строке str подстроки str1, str2, .... и т.д. - количество подстрок заведомо неизвестно. Как составить регулярное выражение, чтобы проверялось именно одновременно наличие всех подстрок str1...n? Уточнение: например если записать так: "str1|str2" - выдает положительный результат если присутствует одна из указанных ветвей, т.е. действует по принципу "ИЛИ", а мне необходимо чтобы было как "И". Возможно ли записать это условие одной строкой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 20:20 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
Savage_AlexВозможно ли записать это условие одной строкой?А нужно ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 21:15 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
это замедлит работу, если "одной строкой" ... далее, если все-таки хотите "одной строкой", формируете переменную с значением $str="\$str=~s/(str_1)(str2_)(str_3)...(str_n)//"; Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 21:41 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
дело в том что если я передаю указанный вами паттерн в функцию preg_match, то ничего не получается. Либо паттерн будет иметь другой вид для этой функции? Немогли бы вы привести пример паттерна в preg_match, например для: в строке str найти соответствие строкам str1, str2, str3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2006, 22:43 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
дело в том что если я передаю указанный вами паттерн в функцию preg_match, то ничего не получается. Либо паттерн будет иметь другой вид для этой функции? что бы потом не возникало таких вопросов, надо ФАК (не всего сайта, а хотя бы данного раздела) посещать перед тем как задавать вопросы Код: plaintext 1. 2. PHP: preg_match - Manual PHP: eval - Manual ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 00:00 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
А я смотрю, вы большой любитель eval'а. А зачем он там вообще? Кроме того, ваше решение проблемы не решает - подстроки str1, str2 и strN, по условию задачи, могут располагаться в любом порядке (по крайней мере - в условии это не оговорено). Так же, как и не оговорено, что подстроки могут и должны разделяться символами \s Тем не менее ответ на вопрос "зачем решать задачу одним регулярником?" - остаётся загадкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 00:33 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
А я смотрю, вы большой любитель eval'а. А зачем он там вообще? А как тогда решить проблему "одной строкой"? Кроме того, ваше решение проблемы не решает - подстроки str1, str2 и strN, по условию задачи, могут располагаться в любом порядке (по крайней мере - в условии это не оговорено). В том то и дело "не оговорено" ... Так же, как и не оговорено, что подстроки могут и должны разделяться символами \s Я просто показал в качестве примера ... Тем не менее ответ на вопрос "зачем решать задачу одним регулярником?" - остаётся загадкой. Для меня тоже, я автора предупредил, что "это" замедлит работу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 09:01 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
Николай aka Motodor А я смотрю, вы большой любитель eval'а. А зачем он там вообще? А как тогда решить проблему "одной строкой"? "одна строка" != "одно регулярное выражение"... а строки они длинные бывают... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 10:02 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
nik2 Николай aka Motodor А я смотрю, вы большой любитель eval'а. А зачем он там вообще? А как тогда решить проблему "одной строкой"? "одна строка" != "одно регулярное выражение"... а строки они длинные бывают... :) думаю это надо сказать не мне, а автору топика ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 10:03 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
Николай aka MotodorА как тогда решить проблему "одной строкой"?А eval как-то помогает это сделать? :) Тем более - это не ответ на вопрос - а зачем он там вообще, когда я с таким же успехом мог бы написать Код: plaintext Будем считать, что бессмысленность самого выражения я не заметил. PS: есть простое правило - eval никогда не нужен. Если он вам нужен - значит вы что-то делаете не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 11:43 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за внимание. Дело в том что, как было указано выше, необходима конструкция, которая искала бы подстроки str1, str2, str3 - в любом их порядке следования в строке str (то что они должны следовать именно в строгой последовательности - это уже просто сужение поставленного условия что действительно не оговаривалось). И я просто хотел узнать возможно ли записать это все кратко, как например для "str1|str2" Видимо задачу прийдется таки решать другим путем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 12:04 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
* Николай aka MotodorА как тогда решить проблему "одной строкой"?А eval как-то помогает это сделать? :) Тем более - это не ответ на вопрос - а зачем он там вообще, когда я с таким же успехом мог бы написать Код: plaintext Автор написал ведь, что "заведомо неизвестно" сколько должно быть совпадений .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 12:11 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
Savage_Alex Видимо задачу прийдется таки решать другим путем :) Не поверишь, но ты совершенно прав!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 12:51 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
Николай aka MotodorАвтор написал ведь, что "заведомо неизвестно" сколько должно быть совпадений ....А разве из этого следует, что там необходим eval? Вы всё же на поставленный то вопрос ответье - зачем он там? ;) Savage_AlexИ я просто хотел узнать возможно ли записать это все кратко, как например для "str1|str2"Возможно. Но оно того не стоит. Есть такой принцип - KISS. И для этой задачи он как нельзя кстати ;)Видимо задачу прийдется таки решать другим путем :)Это было бы наиболее разумно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 13:51 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
* Видимо задачу прийдется таки решать другим путем :)Это было бы наиболее разумно :)Забыл добавить - следуя тому же принципу и здравому смыслу - регулярные выражения вам не нужны вообще ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 13:53 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
А разве из этого следует, что там необходим eval? Вы всё же на поставленный то вопрос ответье - зачем он там? ;) Код: plaintext 1. p.s. зачем " стирали ? $str = " ... " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 14:46 |
|
||
|
(PHP) поиск заведомо неизвестного количества совпадений
|
|||
|---|---|---|---|
|
#18+
Николай aka Motodorа как тогда лучше сформировать код, который потом интерпритировать?А зачем формировать код и его интерпретировать? Разве в задаче это требуется? Надо-то с гулькин хвост Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 16:56 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=33502307&tid=1476888]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
179ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 508ms |

| 0 / 0 |
