متن 🔒 در مرورگر اجرا می‌شود — داده‌ای ارسال نمی‌شود

Regex آدرس URL

آدرس‌های وب را با یک الگوی کوتاه در متن پیدا کنید و پیش از گذاشتن آن در کد، ببینید دقیقاً کجا متوقف می‌شود.

/ /
متن آزمایشی
تطبیق‌ها و گروه‌ها
تطبیق‌ها اینجا نمایش داده می‌شوند...

Regex آدرس URL

بیرون کشیدن لینک‌ها از لاگ‌ها، خروجی چت‌ها یا متن‌های استخراج‌شده کار یک عبارت باقاعده است، و الگو باید آن‌قدر کوتاه باشد که بشود خواندش. این صفحه آزمایشگر Regex را با الگوی URL (http/https) از کتابخانهٔ الگوها، یعنی https?:\/\/[^\s/$.?#][^\s]*، با پرچم‌های gi باز می‌کند.

الگو را چطور بخوانیم

بخشمعنی
https?http، با یک s اختیاری
:\/\/دونقطه و دو اسلش، Escape‌شده تا الگو بین دو اسلش در کد هم کار کند
[^\s/$.?#]نخستین کاراکتر نام میزبان: هر کاراکتری به‌جز فاصله، اسلش، علامت دلار، نقطه، علامت سؤال و علامت هش
[^\s]*هر چیز دیگری تا فاصله بعدی
giهمه لینک‌ها را با هر بزرگی و کوچکی حروف پیدا می‌کند

چه چیزی را می‌گیرد و چه چیزی را جا می‌اندازد

متننتیجه
https://logicutil.com/tool/regex-testerکل آدرس
http://example.org/page?q=1#topکل آدرس، همراه با کوئری و fragment
http://localhost:8080/xکل آدرس، همراه با پورت
HTTPS://EXAMPLE.COM/Xتطبیق می‌کند، به لطف پرچم i
https://例子.测试/路径تطبیق می‌کند: دامنه‌ها و مسیرهای غیرلاتین حفظ می‌شوند
Visit https://example.com.https://example.com.، همراه با نقطه
(https://example.com/a)https://example.com/a)، همراه با پرانتز
www.example.comبدون تطبیق: scheme ندارد
ftp://files.example.comبدون تطبیق: فقط http و https

نسخه دقیق‌تر

برای کنار گذاشتن علائم نگارشی انتهایی، تطبیق را با یک lookahead تمام کنید: https?:\/\/[^\s/$.?#][^\s]*?(?=[\].,;:!?)]*(?:\s|$)). این الگو کوتاه‌ترین بخشی را می‌گیرد که بعد از آن فقط علائم نگارشی و سپس یک فاصله یا انتهای متن بیاید؛ پس Visit https://example.com. نتیجه https://example.com را می‌دهد و (https://example.com/a) نتیجه https://example.com/a را. بهایش این است که لینکی که واقعاً به پرانتز ختم می‌شود، مثل برخی آدرس‌های Wikipedia، آن پرانتز را از دست می‌دهد.

پیدا کردن لینک، اعتبارسنجی آن نیست

الگویی مثل این به پرسش «آیا این متن چیزی شبیه لینک دارد؟» پاسخ می‌دهد، نه به پرسش «آیا این آدرس کار می‌کند؟». برای یک مقدار تکی در JavaScript، new URL(value) سخت‌گیرتر است: روی https:// بدون هیچ میزبانی خطا پرتاب می‌کند. از regex برای پیدا کردن نامزدها در متن استفاده کنید و تصمیم را به new URL() یا سرورتان بسپارید.

صفحه‌های مرتبط

لینک‌های پیداشده را در صفحه جست‌وجو و جایگزینی با Regex با [$&]($&) به Markdown تبدیل کنید و رفتار پرچم‌ها را در تست Regex جاوااسکریپت ببینید. آدرس‌های ایمیل دام‌های خاص خودشان را دارند که در راهنمای Regex برای ایمیل آمده است.

آموزش‌های مرتبط