عبارت منظم برای تشخیص آدرس وب با پروتکل و بدون پروتکل
امروز لازم داشتم یه یو آر ال رو (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
شنبه 28 فروردین 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])$"@