Ben yazıyorum bir sistem bağlantıları değiştirmek için Markdown kullanır, ama aynı zamanda düz bağlantılar aktif yapmak istiyorum, böylece yazarak http://www.google.com
aktif link olacak. Bunu yapmak için, ben adresler bulmak ve Markdown sözdizimi onları yeniden yazmak için bir regex yerine kullanıyorum. Sorun regex de Markdown sözdizimi zaten bağlantıları ayrıştırmak değil alınamıyor olmasıdır.
Ben aşağıdaki kodu kullanarak ediyorum:
$value = preg_replace('@((?!\()https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', '[$1]($1)', $value);
Bu, http://www.google.com
olarak düz bağlantılar için iyi çalışır, ama Markdown biçiminde zaten bağlantıları görmezden gerekir. Ben bölüm (?! () Bir parantez takip adresler eşleşen önlemek düşündüm, ama ben hata olduğumu görünüyor.
Ben (o amele) bile bu ideal bir çözüm olmadığını biliyoruz, ama bu benim regex yeteneklerinin ötesinde bastırıyor.