Ben Liberal URL Regex from Daring Fireball, some of Alan Storm improvements ile birleşti ve parantez içinde IDN karakter için destek gibi bazı hatalar tespit yolumu kesmek aldım. Bu benim ettik budur:
/(?:[\w-]+:\/\/?|www[.])[^\s()<>]+(?:(?:\([^\s()<>]*\)[^\s()<>]*)+|[^[:punct:]\s]|\/)/
Ancak ben çözmek mümkün değilim bir hata karşılaştı:
'www.dsd(sd)sdsd.com' // can also be the valid 'www.dsd.com/whatever(whatever)'
Yukarıdaki URL www.dsd(sd)sdsd.com'
(veya www.dsd.com/whatever(whatever)'
) yerine olarak kabul ediliyor www.dsd(sd)sdsd.com
(veya www.dsd.com/whatever(whatever)
). Bu yalnızca URL aşağıdaki URL beri, parantez olduğunda ne gibi görünüyor:
'www.sampleurl.com'
Doğru olarak kabul ediliyor www.sampleurl.com
.
Ben URL ben bir süre için çalışıyor ettik ama bir çözüm bulmak için görünmüyor olabilir, strong> parantez olduğunda regex ve the [^[:punct:]\s]|\/
parçası yürütülüyor olmadığını düşünüyorum. Herkes bana yardımcı olabilir misiniz?
Emtia için, ben regex ve bazı test verileri a> (son URL başarısız) ile Rubular permalink kurdum.
Örneğin ben bu URL gibi uyuşmuyor Gruber'ın regex, biraz acele olduğunu düşünüyorum:
http://en.wikipedia.org/wiki/Something_(Special)_For_You
Hatta fazla etkilendik hem Gruber ve Alan Bu gerçekten basit yazım hatası cevapsız görerek değilim:
\([\w\d]+\)
Wouldn't \(\w+\)
yeterli olacak mı? : S strong>