هنوز چند بایت مونده که پیدا کنم...

عبارت منظم برای تشخیص آدرس وب با پروتکل و بدون پروتکل

امروز لازم داشتم یه یو آر ال رو (URL) رو تشخثی بدم توی کد سی شارپ که همه پروتکل ها مثل http، https، FTP و یا mailto رو تشخیص بده و بپذیره. همین دیگه!
 
تو قسمت منبع یه مطلب بدر بخور هم گذاشتم که میتونه در آینده کمک کنه بهتون. شاید!
// plain expression
/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)/

// description
(
  ( // تطبیق پروتکل و دامنه
    ([A-Za-z]{3,9}:(?:\/\/)?) // http:// و mailto: شامل 
    (?:[\-;:&=\+\$,\w]+@)? // برای تشخیص آدرس ایمیل
    [A-Za-z0-9\.\-]+ // هر چیزی که شبیه اسم دامنه است
    | // یا جای بالایی ها
    (?:www\.|[\-;:&=\+\$,\w]+@) // @ یا www  شروع با
    [A-Za-z0-9\.\-]+   // هر چیزی شبیه اسم دامنه
  )
  ( // برای تشخیص مسیر کوئری استرینگ یا انکر
    (?:\/[\+~%\/\.\w\-]*) // پذیرش اسلش برای مسیر که اختیاری هم هست
    ?\??(?:[\-\+=&;%@\.\w]*) // پذیرش اختیاری ؟ برای نمایش کوئری استرینگ
    #?(?:[\.\!\/\\\w]*) // پذیرش # برای انکر
  )? // پسوند اختیاری برای یو آر ال
)

// code 
 var isUrl = Regex.IsMatch("http://www.MalekMakan.Com/"
                , @"/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+~%\/\.\w\-_]*)?\??(?:[\-\+=&;%@\.\w_]*)#?(?:[\.\!\/\\\w]*))?)/");


نکته

Regular expression for links with or without the protocol
نویسنده : محمد ملک مکان
شنبه 28 فروردین 1395
+ 30 -

ایده ها، نظرات و سوالات دوستان ما

مهمون کدجیک
یکشنبه 7 آبان 1396
من میخام یه برنامه بنویسم که ووردیش یه متن html باشه خروجیش ادرس ایمیل ها و ادرس وب سایتا باشه میشه کمکم کنین؟
+ 00 -
مهمون کدجیک
پنجشنبه 9 ارديبهشت 1395
دمت گرم :)

منم تو یکی از پروژه ها برای تشخیص معتبر بودن، نام دامین (اسم+پسوند) از این نمونه استفاده کردم...

"^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+(?:com|edu|gov|int|mil|net|org|biz|info|aero|[a-z][a-z])$"@
+ 30 -

خوشحال میشیم نظرتُ بدونیم