URL eşleştirme için düzenli ifade (PCRE)

2 Cevap php

Giriş: Biz giriş dizesi gibi bazı düz metin olsun ve biz orada tüm URL'leri highlighight zorunda <a href={url}>{url></a>.

Bir süredir ben birkaç kez modifiye http://flanders.co.nz/2009/11/08/a-good-url-regular-expression-repost/ alınan regex, kullandım, ama bu başka bir konu için yerleşik - Bütün giriş dizesi bir URL ya da hiç olup olmadığını kontrol etmek.

Yani, bu tür konularda ne regex kullanıyorsunuz?

UPD: cevaplar php ile ilgili olsaydı güzel olurdu: - [

2 Cevap

CPAN mevcut modüllerin bir çift de bir göz atın:

ikincisi biraz daha bağışlayıcı olduğu. Düzenli ifadeler kaynak kodu bulunmaktadır (the latter's, örneğin).

Örneğin:

#! /usr/bin/perl

use warnings;
use strict;

use URI::Find::Schemeless;

my $text = "http://stackoverflow.com/users/251311/zerkms is swell!\n";

URI::Find::Schemeless
  ->new(sub { qq[<a href="$_[0]">$_[0]</a>] })
  ->find(\$text);

print $text;

Çıktı:

<a href="http://stackoverflow.com/users/251311/zerkms">http://stackoverflow.com/users/251311/zerkms</a> is swell!

Perl için, ben genellikle ortak regex tanımlayan modüllerinden birini kullanın, Regexp::Common::URI::*. Bu modülleri kaynaklarında sizin için iyi bir regexpi bulabilirsiniz.

http://search.cpan.org/search?query=Regexp%3A%3ACommon%3A%3AURI&mode=module