[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: SELECT
uMnepaTop
Доброй ночи, товарищи smile.gif
Помогите с вопросиком, пожалуйста..
Как сделать выборку только по регулярным выражениям, например:
^(\\|.+?\\|)
^(~.+?~)
.. регулярок много..



Спустя 5 часов, 16 минут, 37 секунд (9.08.2010 - 08:22) Lenarfate написал(а):
не стоит. накладно это очень, регулярки много памяти жрут, да еще и в запросах...

Спустя 2 часа, 34 минуты, 38 секунд (9.08.2010 - 10:57) uMnepaTop написал(а):
А какие есть альтернативы?
Есть у меня записи:
|key| value1
|key| value2
|key| value3

~key~ value1
~key~ value2
~key~ value3

Как можно сделать так, чтобы, если
^(\\|.+?\\|) > 2, записать в другую базу..

Спустя 11 часов, 47 минут, 22 секунды (9.08.2010 - 22:44) uMnepaTop написал(а):
Просьба помочь еще актуальна.. unsure.gif

Спустя 2 дня, 6 часов, 1 минута, 19 секунд (12.08.2010 - 04:46) uMnepaTop написал(а):
Просьба ооочень актуальна.. Неужели вариантов никаких нет... unsure.gif

Спустя 5 часов, 44 минуты, 5 секунд (12.08.2010 - 10:30) DedMorozzz написал(а):
словами скажи что ты хочешь и конкретный пример. Тогда помогу. Ибо это:
"^(\\|.+?\\|) > 2" - вообще не то. При этом не важно что бы ты не хотел получить, этот кусок никогда не будет работать нормально smile.gif

Спустя 6 часов, 21 минута, 20 секунд (12.08.2010 - 16:51) uMnepaTop написал(а):
Да не, это не код..) Просто непонятно написал rolleyes.gif
Вообщем вопрос следующий:

Есть множество имен с одинаковыми основаниями (это tag) , например:
|tag| name1
|tag| name2
|tag| name3
и\или
~tag~ name1
~tag~ name2
~tag~ name3

Берем name с одинаковым tag и записываем в другую таблицу

Есть онлайн статистика psyhostats, там команды (кланы) они определяются по тегам (регуляркам), т.е если в NAME есть тег соответствующий регулярке, мы его (tag) пишем в бд..

Вот как-то так dry.gif

Спустя 22 часа, 12 минут, 25 секунд (13.08.2010 - 15:04) uMnepaTop написал(а):
вопросик актуален..

Спустя 23 минуты, 2 секунды (13.08.2010 - 15:27) DedMorozzz написал(а):
Если есть какие-то спец символы - то напишу регулярку. Которая будет в автомате что-либо делать. Если такого критерия нету, тогда прийдёться задавать "таг" в ручную. Т.е. этот тег подаать в регулярку и тоже такое запросто напишу.
Без любого из этих пунктов - нереально. Ибо имя может быть Mega_Clan_Vova и Mega_Clan_Vasiliy_pupkin. и там и там есть подчерк. Но во 2м случае, он явно в нике. Уточни.

Спустя 7 минут, 52 секунды (13.08.2010 - 15:34) uMnepaTop написал(а):
Ну вот эти Mega_Clan_ совпадают, а значит это тег..

вот табличка из психостатса:
(8,70,'^(([^\\w\\d\\S]).+\\2).','','left','regex','-clan-playername'),
(
7,60,'^(\\].+?\\[).','','left','regex',']clan[playername'),
(
5,40,'^(<.+?>).','','left','regex','<clan>playername'),
(
6,50,'^(\\|.+?\\|).','','left','regex','|clan|playername'),
(
4,30,'^(\\{.+?\\}).','','left','regex','{clan}playername'),
(
3,10,'^(\\(.+?\\)).','','left','regex','(clan)playername'),
(
2,5,'^(\\[.+?\\]).','','','regex','[clan]playername'),
(
9,100,'.(\\[.+?\\])$','','right','regex','playername[clan]'),
(
10,110,'.(\\(.+?\\))$','','left','regex','playername(clan)'),
(
11,120,'.(<.+?>)$','','right','regex','playername<clan>'),
(
12,130,'.(\\|.+?\\|)$','','left','regex','playername|clan|'),
(
13,80,'^([^\\|]+\\|)','','left','regex','clan|playername'),
(
14,90,'^(~.+?~).','','left','regex','~clan~playername');


по этим регуляркам и определяются теги, это как бы популярные..

Спустя 21 минута, 45 секунд (13.08.2010 - 15:56) DedMorozzz написал(а):
<?php
$text = '`clan`nick' или 'clan`nick' или 'nick`clan`';
$text = preg_replace('#(([`~\\+\|])(.+?)\\2(.*))|(.*?[`~\\+\|](.*))|((.*?)[`~\\+\|])#','$4$6$8',$text);
echo $text;//nick

"Или" естесно в переменной текст ненадо. Эт те слова которые я тестил. В качестве разделителя может быть `~\+| . Если надо что нибуть ещё - допиши в шаблон.

Спустя 4 часа, 38 минут, 26 секунд (13.08.2010 - 20:35) uMnepaTop написал(а):
Спасибо, но надо наверное не реплейс, а матч.. =\
Мне же не заменять надо, а найти соответствия и если по регулярке подходит, и если похожих больше 2-х, добавляем в бд..

Напишите пожалуйста для preg_match
|clan|playername
~clan~playername
[clan]playername

я пытаюсь, но что-то совсем не могу с этим разобраться.. =\\

Спустя 12 часов, 58 минут, 31 секунда (14.08.2010 - 09:33) DedMorozzz написал(а):
ха, а что те ЭТО решение мешает использовать smile.gif)))
$text = '`clan`nick' или 'clan`nick' или 'nick`clan`'; 
$onlyName = preg_replace('#(([`~\\+\|])(.+?)\\2(.*))|(.*?[`~\\+\|](.*))|((.*?)[`~\\+\|])#','$4$6$8',$text);
echo $onlyName;//nick

Спустя 3 часа, 43 минуты, 44 секунды (14.08.2010 - 13:17) uMnepaTop написал(а):
Нде)
А как мне в tbl добавлять только те clan name , которые соответствуют регуляркам?
И которых больше 2-х одинаковых clan, т.е если тег подходит под регулярку, но такой тег всего 1, то не надо его в tbl писать smile.gif
Если >=2 то запишем..

т.е

|clan|name_1
|clan|name_2

этих запишем в tbl,

|clan|name_1 (один раз всего встречается, нафиг нам один.. один это не клан нифига tongue.gif )

не запишем ph34r.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.