Hashtags PHP Regex Yardım

2 Cevap php

Ben şu dize vardır:

$str = '#hello how are #you and #you and #you';

Ben exampe için önlerinde karma etiketi, sahip olanlar etrafında bazı html sarmak istiyorum:

echo preg_replace("/#([A-Za-z0-9_]+)(?= )/", "<a href='http://url.com/$1'>$0</a>", $str);

Hangi çıktısı:

#hello nasıl #you ve #you ve # seni

Her URL linki link karma etiketi var değil dikkat edin.

Ancak, bu hiçbir boşluk bunu regex uymuyor son # sonunda ve açıkçası dahil almaz çünkü, benim sorunum. Biraz sonra boşluk olabilir gibi, gerçekten ne emin değilim, ve bazı olmayabilir, ama ben çıkış boşluğu (dolayısıyla (? =)) Dahil etmek istemiyorum ama ben başka ne bilmiyorum yapabilirsiniz.

Herhangi bir yardım büyük mutluluk duyacağız.

Şimdiden teşekkürler

2 Cevap

kullanmak (\ s | \ Z) bu boşluk veya sonu satırını maç olacak

Bu tür ([^.] +) Olarak dışlamak moduna seçici geçiş yapabilirsiniz. Böylece örneklerin tümü için çalışması gerekir.