@lexstile

Как правильно составить регулярное выражение на php?

Есть строки:

@test1 стоп, не так все
@test1 не знаю даже @test1 тест@test1привет @@test1р
Привет, ребят @test2 как дела? @test1 @test2@test1
@test1п

Цель: test1 и test2 в данном примере, на их месте может быть любой ник (можно использовать буквы, цифры, символ подчеркивания, точку).
Жирным я выделил то, что должно попадать в выборку (не должно попасть в выборку: с двойной собакой (пример во второй строке); со второго и далее ники, если указаны подряд без пробела (пример в третьей строке); символы по обе стороны от ника (без пробела), которые не подходят под шаблон - буквы, цифры, символ подчеркивания, точка).
  • Вопрос задан
  • 250 просмотров
Решения вопроса 1
JimmDiGreez
@JimmDiGreez
Full-stack Developer
Финальная регулярка:
https://regex101.com/r/9hfuzi/2/
([^@]{1}|^)(@[a-zA-z\d]+)
В ней на замену только группа 2, значит preg_replace использовать с маской.
$replacement = '$1ЗАМЕНА';
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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