Maç Beyaz Space veya dize sonu için regex

2 Cevap php

Ben comment metinde @ username her örneğini bulmak ve bir bağlantı ile değiştirin çalışıyorum. İşte benim PHP kadar bulunuyor:

$comment = preg_replace('/@(.+?)\s/', '<a href="/users/${1}/">@${1}</a> ', $comment);

Tek sorun regex @ adınızı referans sonra orada olmanın boşluklarla bağlıdır olmasıdır. Bu dizenin sonunda ise herkes bana bu çimdik yardımcı olabilir bu yüzden de maç olacak?

2 Cevap

/@(\w+)/ yerine try /@(.+?)\s/.

/@(.+?)(?=\s|$)/, ancak kullanıcı adları alfasayısal olmayan karakterler içeren sürece, bu kelime karakter veya {[(2 için \w kullanmak basittir: boşluk veya dize sonuna algılamak için kullanmak istiyorsunuz )]} kelimesi molası için, yani: /@(.+?)\b/ veya /@(\w)+/.