بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

درخواست regex برای تشخیص لینک در متن

مدیریت گفتگو
هادی اکبرزاده 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام به همه دوستان عزیز

من میخوام یک متن رو بررسی کنم ببینم لینک توش هست یا نه

چه با Www باشه و چه بدون اون

چه با پروتوکل http یا https باشه و چه بدون اینا

و این که دامنه های واقعی رو تشخیص بده یعنی یه چیزی مثل fsdfsf رو تشخیص نده و چیزایی مثل com و ir رو ... که وجود دارند رو تشخیص بده

البته توی نت پیدا کردم ولی هیچ کدوشون این کارو نکردن و مجبور شدم از

 Patterns.DOMAIN_NAME.matcher(text).find()

استفاده کنم که اینم هر دامنه ای رو درست اعلام می کنه مثل همون fsdfsf که گفتم

اگه کسی واسه این regex ای داره ممنون می شم به اشتراک بزاره

در ضمن من فقط میخوام ببینم لینک داره یا نه و نیازی به خود لینک ها ندارم

در نتیجه باید همه اینا درست اعلام بشن:

uncox.com

www.uncox.com

https://uncox.com

https://uncox.com

نظرات

reza 10 سال پیش
با regex به راحتی نمیشه تمام پسوند های تمام سایت ها رو فهمید به نظرم از این استفاده کن response.getEntity().getContent(); کار بهتری اگه کدی به این صورت بده 2.x.x یعنی لینک صحیح است
reza 10 سال پیش
اگه می خوای از اون روش بری فقط الگو رو چک میکنه که صحیح باشه و فرق بین لینک واقعی و غیر واقعی رو نمیفهمه اگه فقط مشکلت نام دامنه است با این چک کن .*([^\.]+)(ir|com|net|org|info|coop|int|co\.uk|org\.uk|ac\.uk|uk|__و هرنام دامین دیگر__)$
نه برام اصلن مهم نیس لینک واقعی باشه یا نه فقط میخام ساختارش اونطوری باشه یعنی یه سری دامنه رو خودم بگم اینا درستن و اون موقع دیدنش اعلام کنه. آنلاینم نمی تونم بررسی کنم.
عبارتو توی سایت regexer قرار دادم ولی چیزی رو مچ نکرد مشکل چیه؟
reza 10 سال پیش
اون برای چک دامین بود اگه می خوای هر دامنی رو قبول کنه [-a-zA-Z0-9@%_\+.~#?&//=]*)?

پاسخ‌ها 1

reza 10 سال پیش

سلام

فقط کد به صورت کامل کد ها نگرفته بود دو تا ENTER زدم
خودت پاکش کن برای اضافه کردن نام دامنه دیگر  می توانید \.ir| استفاده کنید

در صورت نیاز لینک

\b([\d\w\.\/\+\-\?\:]*)((ht|f)tp(s|)\:\/\/|[\d\d\d|\d\d]\.[\d\d\d|\d\d]\
.|www\.|\.tv|\.ac|\.com|\.edu|\.gov|\.int|\.mil|\.net|\.org|\.biz|\.info|\.nam
e|\.pro|\.museum|\.co|\.ir)([\d\w\.\/\%\+\-\=\&\?\:\\\"\'\,\|\~\;]*)\b

نظرات

این به درستی کار می کنه جز یکیش. مثلا فرض کنید به جای test.ir بزنیم test.ird بازم می گه درسته! خودمم که هیچی از این regex سر در نمیارم خخخ! اگه می شه این جاشو iهم اوکی کنید ممنون می شم ...
reza 10 سال پیش
لطفا سرچ کنید

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .