Вот мой код:

$send_message = preg_replace('/@(\w+).*?|<=+/u', "<a href='#'>@$1 </a>", 
$get_original_message);

Но проблема в следующем:

  1. Когда я ввожу @testuser -> Все работает нормально
  2. Когда я ввожу @test_user -> все работает нормально
  3. Но когда я ввожу @test-user -> его беру только "тест", но мне нужен "тестовый пользователь" Может ли кто-нибудь помочь мне в этом
  4. Вы можете использовать онлайн-редактор https://regex101.com/
0
Sandip Jha 22 Апр 2020 в 07:21

1 ответ

Лучший ответ

В регулярном выражении знак \ w не принимает тире. И с другой стороны, обычно в именах пользователей в начале и в конце слова использование тире недопустимо. Таким образом, мы можем изменить регулярное выражение таким образом, чтобы оно принимало символы тире:

@(\w+-*\w*).*?|<=+

Я надеюсь, что это помогает

1
Kamyar Safari 22 Апр 2020 в 06:11