Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Помощь в регулярке
RCuPeR  
 ۩  [x]    Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



LadaFWD club
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 1448
Пользователь №: 24637
На форуме: 6 лет, 8 месяцев, 21 день
Карма: 22




Есть строка вида:
http://www.test.loc/index.php?do=/Roman/

или
test.loc/index.php?do=/Roman/

или
http://www.test.loc/Roman/


Как, с помощью регулярки получить с нее "Roman" ?

substr();
parse_url();

Не предлагать !


Заранее спасибо :)



Спустя 4 минуты, 31 секунда (27.12.2011 - 10:19) kent666 написал(а):
А если делать привязку к концу строки
"#\/(.+)\/$#"


Спустя 6 минут, 51 секунда (27.12.2011 - 10:26) duhon написал(а):
preg_match('#/[^/]+/?$#', 'http://www.test.loc/Roman/');

Спустя 12 минут, 5 секунд (27.12.2011 - 10:38) RCuPeR написал(а):
Момент!

Спустя 2 минуты, 21 секунда (27.12.2011 - 10:41) RCuPeR написал(а):
preg_match_all('#\/(.+)\/$#', $str1, $match);

Возвращает:
Array
(
[0] => Array
(
[0] => //www.test.loc/index.php?do=/Roman/
)

[1] => Array
(
[0] => /www.test.loc/index.php?do=/Roman
)

)


preg_match_all('#/[^/]+/?$#', $str1, $match);

Возвращает:
Array
(
[0] => Array
(
[0] => /Roman/
)

)

Спустя 49 секунд (27.12.2011 - 10:41) RCuPeR написал(а):
Второй вариант явно более подходящий, но тогда вопрос: как в этой же регулярке избавится от слешей ?

Спустя 7 минут, 58 секунд (27.12.2011 - 10:49) kent666 написал(а):
попробуй
preg_match_all('#\/([a-zA-Z0-9]+)\/$#', $str1, $match);

Я просто не учел что слеши могут быть в самом начале
И во втором массиве будет то что тебе надо

Спустя 9 минут, 35 секунд (27.12.2011 - 10:59) RCuPeR написал(а):
Теперь такой момент:
если во всех троих случаях в урле нету последнего слеша ???

Спустя 1 минута, 35 секунд (27.12.2011 - 11:01) kent666 написал(а):
preg_match_all('#\/([a-zA-Z0-9]+)$#', $str1, $match)

Спустя 25 минут, 13 секунд (27.12.2011 - 11:26) RCuPeR написал(а):
Последний моментик:
В строке еще должен быть символ "-".
Т.е:
$str2 = 'test.loc/index.php?do=/profile-123/';

Спустя 2 минуты, 32 секунды (27.12.2011 - 11:28) kent666 написал(а):
Для /profile-123/

preg_match_all('#\/([a-zA-Z0-9-]+)\/$#', $str1, $match)


Для /profile-123
preg_match_all('#\/([a-zA-Z0-9-]+)$#', $str1, $match)


Если не сработатет то попробуй так
preg_match_all('#\/([a-zA-Z0-9\-]+)$#', $str1, $match)

Спустя 13 минут, 58 секунд (27.12.2011 - 11:42) killer8080 написал(а):
RCuPeR
это нужно?
$t = ' 
http://www.test.loc/index.php?do=/Roman/
test.loc/index.php?do=/Roman/
http://www.test.loc/Roman/
'
;

preg_match_all('#(?:https?://)?[a-z\d\.-]+/(?:([a-z]+)/|.*do=/([a-z]+)/)#isuU', $t, $m);
echo '<pre>'.print_r($m, 1).'</pre>';
list($login) = array_values(array_unique(array_filter(array_merge($m[1], $m[2]))));
echo 'login: '.$login;

Спустя 16 минут, 5 секунд (27.12.2011 - 11:58) Эли4ка написал(а):
ого сколько примеров по регуляркам..пригодится..

Спустя 2 минуты (27.12.2011 - 12:00) killer8080 написал(а):
Цитата (Эли4ка @ 27.12.2011 - 10:58)
ого сколько примеров по регуляркам..пригодится..

Не пригодится, регулярки пишутся индивидуально под задачу smile.gif

Спустя 27 секунд (27.12.2011 - 12:01) dadli написал(а):
RCuPeR
или так:
$str = 'http://www.test.loc/index.php?do=/Roman/';
$mas = preg_split("#/#u",$str,-1,1);
echo $mas[count($mas) - 1];

Спустя 42 минуты, 42 секунды (27.12.2011 - 12:44) RCuPeR написал(а):
Всем большое спасибо !
Пока все способы не испробовал, но уверен: пригодятся wink.gif


--------------------
Гнусный социопат с комплексом Бога.
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса