I get the text of posts from VK and there may be links to some public or people, they need to be replaced with links. Examples: [id1 | Pasha] [durov | Pasha] [club1231 | Test] [club1231222 | Test page] and so on. They need to be replaced by (example)

<a href="https://vk.com/durov">Паша</a> 

I read it, googled it, but it still doesn’t work out ... I made up a regular calendar with the help of some service, it didn’t fit, then I climbed in js from VC, I found it there, but I had to change it, it's hard for me ...

 (?![^&;]+;)(?!<[^<>]*)((\\(*)("+i.join("|")+"))(?![^<>]*>)(?![^&;]+;) 
  • and if the domain name (as in the example durov ) is not assigned, or there is no middle name? - Drakonoved

1 answer 1

If you need php

 <?php $re = '/\[(.+)\|(.+)\]/U'; $str = '[id1|Паша] Значимость этих проблем настолько очевидна, что дальнейшее развитие различных форм [durov|Паша] деятельности способствует подготовки и реализации систем массового участия. С другой стороны консультация с широким активом [club1231|Test] позволяет выполнять важные задания по разработке направлений прогрессивного развития. Таким образом начало повседневной работы по формированию позиции способствует подготовки и реализации дальнейших направлений [club1231222|Тестовая страница] развития. Идейные соображения высшего порядка, а также начало повседневной работы по формированию позиции влечет за собой процесс внедрения и модернизации системы обучения кадров, соответствует насущным потребностям. Задача организации, в особенности же укрепление и развитие структуры требуют от нас анализа системы обучения кадров, соответствует насущным потребностям.'; $subst = '<a href="https://vk.com/$1">$2</a>'; echo preg_replace($re, $subst, $str); ?> 

Demo
https://regex101.com/r/x9Y4oE/1

  • Thank you, everything works fine) - STEM