Zajmuję się tworzeniem aplikacji PHP, która potrzebuje wyrażenia regularnego, aby zastąpić wzmianki @, takie jak twitter. Również wyrażenie regularne powinno spełniać następujące potrzeby.
- jeśli jest tylko
@
i nic przed i po tym, nie należy go wymieniać. @
w e-mailach nie powinny być zastępowane. Dla np.sam@example.com
nie należy zastępować.- Tylko ciągi takie jak
@sam
lub@example
powinny być zastępowane, takie jak<a href="http://twitter.com/sam">@sam</a>
i<a href="http://twitter.com/example">@example</a>
Proszę pomóż. Z góry dziękuję.
1
vasanth.v
13 lipiec 2011, 08:04
3 odpowiedzi
Najlepsza odpowiedź
Łał. Sam znalazłem odpowiedź, chłopaki.
$tweet = preg_replace('/(^|[^a-z0-9_])@([a-z0-9_]+)/i', '$1<a href="http://twitter.com/$2">@$2</a>', $tweet);
Dziękuję za pomoc.
2
vasanth.v
13 lipiec 2011, 08:31
Co powiesz na coś takiego -
(?<!\w)@[\w]+
1
Paul McLean
13 lipiec 2011, 08:11
Ponieważ twitter może zawierać do 15 znaków, możesz napisać go w ten sposób, aby uniknąć niektórych błędów:
$tweet = preg_replace("/(^\w)@(\w{1,15})/i", "\\1<a ref=\"http://twitter.com/\\2\">@\\2</a>", $tweet);
1
Mathieu Rodic
13 lipiec 2011, 08:52
Podobne pytania
Powiązane pytania
Nowe pytania
php
PHP to szeroko stosowany, wysokopoziomowy, dynamiczny, zorientowany obiektowo i interpretowany język skryptowy przeznaczony głównie do tworzenia stron WWW po stronie serwera. Używane w przypadku pytań dotyczących języka PHP.