Доброе время суток. Появилась необходимость в создании хештегов для сайта.
С регулярными выражениями у меня не всегда все гладко, поэтому обратился за помощью в интернете и по примеру сделал вот такие выражения для хештегов и для внешниех ссылок:
$Post_Text = preg_replace("~(http|https|ftp|ftps)://(.*?)(\s|\n|[,.?!](\s|\n)|$)~", '<noindex><nofollow><a href="http://site.ru/link=$2" target="_blank">$2</a></nofollow></noindex>$3', $Post_Text);
$Post_Text = preg_replace("/#([\S]+)/", "<a href=\"http://site.ru/posts&search=\\1\">#\\1</a>", $Post_Text);
$Post_Text = preg_replace("/@([\S]+)/", "<a href=\"http://site.ru/\\1\">@\\1</a>", $Post_Text);
Но у данных выражений есть огромный минус. Если написать такие теги они будут выводиться с ошибкой:
#abs@as
@asfgas#asgasg
@sag@asfas
#asfasf#asgas
Как исправить данные выражения или же какие дописать условия, чтобы таких ошибок не было и все работало? Спасибо за помощь!