PHP preg_replace, substring replacement — можно ли обрезать $0?

preg_replace(['~[^"]http[s]*://[^\s]+~i', '~^http[s]*://[^\s]+~i'], '<a href="$0" target="_blank">$0</a>', $str)


Ребят, подскажите, можно ли в $replacement обрезать $0 как-нибудь, не прибегая к eval через модификатор PREG_REPLACE_EVAL? Ну знаете ли, мало ли, вдруг окажется, что можно сделать так:
... $0{22} ...

Т.к. я вижу два развития события, в первом вытаскивать через preg_match $0, далее заменять через str_replace и попутно использовать substr... Второй вариант - это модификатор e, к которому я отношусь негативно... Ну и первый вариант, требует уже не 1 строку для операции...

Спасибо :)
  • Вопрос задан
  • 2669 просмотров
Решения вопроса 1
fenric
@fenric Автор вопроса
Нужно просто блок сверстать так, чтобы не приходили такие мысли в голову, и регулярное выражение подправить.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@theaspin
Ответ написан
Комментировать
rdifb0
@rdifb0
Программист, реалист
Захватите нужную подстроку с помощью подмаски, и в $replacement укажите нужную $1, $2, ...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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