Задать вопрос
@AleDv

Как с помощью регулярок отлавливать ссылки в Вконтакте?

Здравствуйте, друзья. Есть текст поста во Вконтакте:

Примерный текст, примерный текст, примерный текст, примерный текст. [id123456|Пользователь].

Ещё текст, примерный текст, примерный текст, примерный текст, примерный текст [club987654321|Сообщество] , примерный текст, примерный текст, примерный текст.


Из этого текста мне нужно вычленить две ссылки:
id123456|Пользователь,
club987654321|Сообщество.

С помощью кода preg_match_all('/\[(.+)\]/',$text,$found); получить желаемого не получилось.

Прошу помощи: как переделать регулярку, чтобы получить все ссылки из поста. Наверняка я где-то допустил нелепую ошибку.

Благодарю за помощь.
  • Вопрос задан
  • 243 просмотра
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
@Beltoev
Живу в своё удовольствие
Вообще регулярка рабочая: вычленяет то, что вам и нужно ( https://regex101.com/r/yS7wI4/1 )

Подозреваю, что не так используете функцию preg_match_all.

UPD:
Такая регулярка даже точнее может искать: \[((?:id|club)\d+)[|](.*)\]
( https://regex101.com/r/gS7xQ0/1 )

UPD:
Новая регулярка: \[((?:id|club)\d+)[|]([^]]*)\]
Ответ написан
sanchezzzhak
@sanchezzzhak
Ля ля ля...
#id([0-9]+)#i
#club([0-9]+)#i
Ответ написан
Комментировать
@bashkarev
/(?<type>id|club)(?<id>\d+)\|(?<name>\W+)/
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы