Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярное выражение, парсинг строки поиска 
:(
    Опции темы
Frikazoid
Дата 25.7.2004, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: нет
Всего: 2



Доброго времени суток господа!
Я в данный момент пишу мини поиск для сайта!
и меня интересует одино регулярное выражение!

в данный момент всё работает на уровне детского сада! к примеру есть строка:
"я ищу тестовую строку"

я делаю массив слов, где сепаратор пробел!

не подскажете как мне сделать регулярное выражение для такой вот строки:
"я ищу 'тестовая строка' тест"

к примеру вот это preg_match_all("/'(.*)'/Uims", $s, $res); мне найдёт только 'тестовая строка'.
А мне надо чтоб он учитывал и слова вне ковычек и разные виды ковычек!

Плз хЭлп! smile.gif
Спасибо за любую помощ!


--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Secandr
Дата 25.7.2004, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



А что ты от кавычек хочешь?

Какая у них функция?


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Frikazoid
Дата 25.7.2004, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: нет
Всего: 2



Ну как это какая?
строку "я ищу 'тестовая строка' тест" мне надо разбить на:
я
ищу
тестовая строка
тест

то что в кавычках считается как одно слово! smile.gif



--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Secandr
Дата 25.7.2004, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



я думаю есть смысл делать так:
искать все '([^']+)' и "([^"])" запоминать, а затем вырезать и искать простые слова.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Frikazoid
Дата 25.7.2004, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: нет
Всего: 2



Я чё та не вкуриваю!
я конечно могу сделать поиск
preg_match_all("/'(.*)'/Uims", $s, $res1);
preg_match_all('/"(.*)"/Uims', $s, $res2);
а поотом всё что осталось!
но это же не круто!


--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Secandr
Дата 26.7.2004, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



можно ещё так:
("|')([^\\1])\\1 - так искать.


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Frikazoid
Дата 26.7.2004, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: нет
Всего: 2



А этот рег експ вааще не сработал!
извини конечно! но ты хоть тестишь когда пишешь в сюда? biggrin.gif tounge.gif


--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Secandr
Дата 26.7.2004, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



Frikazoid
нет я просто идею сказал smile.gif А полное выражение что-то на ум не приходит sad.gif

Просто помню как обсуждалась похожая проблема и примерно так делали.
Хотя можно использовать preg, отучить алгоритм от жадности и тогда просто юзать
("|')([.]*)\\1

P.S. а пример работать и не будет, попробуй вот так: ("|')([^\\1]*)\\1


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Frikazoid
Дата 26.7.2004, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: нет
Всего: 2



<?
$s="t 'test ne test' or 'test' not ";
$s=$s.'more test for "test string" not';

$q='"';

$n=preg_match_all("/(['](.*)['])|([".'"'."](.*)[".'"'."])|([^ ](.*)[$ ])/Uims", $s, $res);
for($i=0; $i<=$n-1; $i++)
echo $res[0][$i].'<br>';
?>

вот это работает! кроме последнего слова "not"! Почему?


--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Secandr
Дата 26.7.2004, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



Frikazoid
Попробуй в конце пробел добавить smile.gif

У тебя же: [$ ]

Блин долго доходило что значит: ([".'"'."](.*)[".'"'."]) , потом понял, что это: ([\"](.*)[\"]) biggrin.gif


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Frikazoid
Дата 26.7.2004, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: нет
Всего: 2



Secandr Попробуй в конце пробел добавить
Это же не круто! по тамерзки мона сказать! smile.gif

Secandr У тебя же: [$ ]
так я понимаю что пробел! я просто не знаю как по другому сделать!



--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Secandr
Дата 26.7.2004, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



Frikazoid Ну может и по ламерски, но работает smile.gif

Пойду дочитаю книжку по регулярным выражениям, ... вот тогда может и красиво получится smile.gif


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Frikazoid
Дата 26.7.2004, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: нет
Всего: 2



Secandr Эх! если бы у меня была такая книженция! smile.gif

Добавлено @ 12:47
Блин! Я не могу удалить последний пробел! ну тот что добавил для работаспособности рег експа!
[$ ] не подходит, так как может быть несколько слов (при использовании ковычек)!



--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 26.7.2004, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 7
Всего: 32



а не проще будет mysql-евый MATCH AGAINST пользовать?


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Frikazoid
Дата 27.7.2004, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 29.3.2002

Репутация: нет
Всего: 2



MuToGeN нет не проще! я парсю филесы!



--------------------
RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле!
А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.