Kakto-Tak
@Kakto-Tak

Выдернуть из строчки адреса, как?

Добрый день всем,
Имеется строчка такого вида:

case:s:webima:http://pk.ve.someurl.com:80/demo,on1_hhh_5@s36016,mob:webima:http://pk.ve.someurl.com:80/demo,t_k275292400,pr:webima:http://pk.ve.someurl.com:80/demo,on0_SHM_12@s36018,default:webima:http://pk.ve.someurl.com:80/demo,5554897363a


Можно ли как-то её разобрать, чтобы получить массив в виде:
http://pk.ve.someurl.com:80/demo,on1_hhh_5@s36016
http://pk.ve.someurl.com:80/demo,t_k275292400
http://pk.ve.someurl.com:80/demo,5554897363a

С регулярками не очень дружу, думал, что как вариант выдергивать между "http" и второй запятой "," - такое вообще реально? Может есть какие-то другие варианты реализации?
  • Вопрос задан
  • 211 просмотров
Пригласить эксперта
Ответы на вопрос 1
GeneMoss
@GeneMoss
void
$str = 'case:s:webima:http://pk.ve.someurl.com:80/demo,on1_hhh_5@s36016,mob:webima:http://pk.ve.someurl.com:80/demo,t_k275292400,pr:webima:http://pk.ve.someurl.com:80/demo,on0_SHM_12@s36018,default:webima:http://pk.ve.someurl.com:80/demo,5554897363a';

preg_match_all('/http:[^,]*,[^,]*/', $str, $matches);

print_r($matches[0]);


Краткое описание регулярного выражения:
http:[^,]*,[^,]*

1. http: — ищем шаблон, который бы начинался с «http:».
2. [^,]* — ищем последовательность символов, в которой отсутствует запятая. Квадратные скобочки — это синтаксис определения возможных символов, из которых может состоять последовательность. Например [abc] — это шаблон одного символа, который совпадает с только с одной из букв «a», «b» или «c». Крышечка «^» — отрицание присутствия перечисленных символов. Звездочка «*» обозначает повторяемость этого символа от 0 до бесконечного числа раз.
3. , — просто ищем запятую.
4. [^,]* — см. п. 2. Т.е. в конце должна идти последовательность, которая не содержит запятые.

Таким образом, шаблон читать так:
(http:)(любые символы, кроме запятой)(,)(любые символы, кроме запятой)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы