![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Frikazoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 29.3.2002 Репутация: нет Всего: 2 |
Доброго времени суток господа!
Я в данный момент пишу мини поиск для сайта! и меня интересует одино регулярное выражение! в данный момент всё работает на уровне детского сада! к примеру есть строка: "я ищу тестовую строку" я делаю массив слов, где сепаратор пробел! не подскажете как мне сделать регулярное выражение для такой вот строки: "я ищу 'тестовая строка' тест" к примеру вот это preg_match_all("/'(.*)'/Uims", $s, $res); мне найдёт только 'тестовая строка'. А мне надо чтоб он учитывал и слова вне ковычек и разные виды ковычек! Плз хЭлп! Спасибо за любую помощ! -------------------- RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле! А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое. |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
А что ты от кавычек хочешь?
Какая у них функция? |
|||
|
||||
| Frikazoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 29.3.2002 Репутация: нет Всего: 2 |
Ну как это какая?
строку "я ищу 'тестовая строка' тест" мне надо разбить на: я ищу тестовая строка тест то что в кавычках считается как одно слово! -------------------- RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле! А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое. |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
я думаю есть смысл делать так:
искать все '([^']+)' и "([^"])" запоминать, а затем вырезать и искать простые слова. |
|||
|
||||
| Frikazoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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 и многое другое. |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
можно ещё так:
("|')([^\\1])\\1 - так искать. |
|||
|
||||
| Frikazoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 29.3.2002 Репутация: нет Всего: 2 |
А этот рег експ вааще не сработал!
извини конечно! но ты хоть тестишь когда пишешь в сюда? -------------------- RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле! А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое. |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Frikazoid
нет я просто идею сказал Просто помню как обсуждалась похожая проблема и примерно так делали. Хотя можно использовать preg, отучить алгоритм от жадности и тогда просто юзать ("|')([.]*)\\1 P.S. а пример работать и не будет, попробуй вот так: ("|')([^\\1]*)\\1 |
|||
|
||||
| Frikazoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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 и многое другое. |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Frikazoid
Попробуй в конце пробел добавить У тебя же: [$ ] Блин долго доходило что значит: ([".'"'."](.*)[".'"'."]) , потом понял, что это: ([\"](.*)[\"]) |
|||
|
||||
| Frikazoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 29.3.2002 Репутация: нет Всего: 2 |
Secandr Попробуй в конце пробел добавить
Это же не круто! по тамерзки мона сказать! Secandr У тебя же: [$ ] так я понимаю что пробел! я просто не знаю как по другому сделать! -------------------- RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле! А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое. |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Frikazoid Ну может и по ламерски, но работает
Пойду дочитаю книжку по регулярным выражениям, ... вот тогда может и красиво получится |
|||
|
||||
| Frikazoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 29.3.2002 Репутация: нет Всего: 2 |
Secandr Эх! если бы у меня была такая книженция!
Добавлено @ 12:47 Блин! Я не могу удалить последний пробел! ну тот что добавил для работаспособности рег експа! [$ ] не подходит, так как может быть несколько слов (при использовании ковычек)! -------------------- RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле! А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое. |
|||
|
||||
| MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 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! |
|||
|
||||
| Frikazoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 29.3.2002 Репутация: нет Всего: 2 |
MuToGeN нет не проще! я парсю филесы!
-------------------- RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле! А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |