মূল কন্টেন্টে যান
মডিউল 8 · 3-এর পাঠ 4কোর্সে 31/32~12 min
মডিউল পাঠ (3/4)

ইউআরএল এবং আইপি বের করা হচ্ছে

বিনামূল্যের পাঠ্যে (লগ, নিবন্ধ, ডাম্প) URLs বের করতে চাওয়া সাধারণ এবং আইপি ঠিকানা। আসুন উভয়ের জন্য শক্তিশালী নিদর্শন দেখি।

http/https URLs

Code
Pattern: https?:\/\/[\w.-]+(?:\:\d+)?(?:\/[^\s]*)?
  • https?:\/\/ -- স্কিম, s ঐচ্ছিক সহ।
  • [\w.-]+ -- হোস্ট (ডোমেন, সাবডোমেন, সম্ভবত localhost)।
  • (?:\:\d+)? -- ঐচ্ছিক পোর্ট।
  • (?:\/[^\s]*)? -- ঐচ্ছিক পথ, প্রথম হোয়াইটস্পেস পর্যন্ত।

ক্যাপচার https://example.com, http://localhost:3000/api/users, https://docs.dev/path?query=value

IPv4

একটি IPv4 হল বিন্দু দ্বারা পৃথক করা 4 দশমিক অক্টেট:

Code
Pattern: \b(?:\d{1,3}\.){3}\d{1,3}\b

"যথেষ্ট ভালো" সংস্করণ: এটি অবৈধ মানও গ্রহণ করে যেমন 999.999.999.999 কঠোর সংস্করণের জন্য আপনার পরিসীমা পরিবর্তনের প্রয়োজন হবে (25[0-5]|2[0-4]\d|[01]?\d\d?), যা অনেক লম্বা।

Code
Pattern (strict): \b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b

নির্ভুলতা বনাম সংক্ষিপ্ততা

ম্যাচিং ইউআরএল বা আইপিগুলির জন্য প্যাটার্ন সহনশীলতার ভারসাম্য প্রয়োজন। একটি কঠোর আইপি ভ্যালিডেটর যাচাই করে যে কোনো অক্টেট 255-এর বেশি নয়। একটি ব্যবহারিক এক্সট্র্যাক্টর, অন্যদিকে, সাধারণত সরলীকৃত প্যাটার্ন খোঁজে এবং ডেডিকেটেড কোডে সূক্ষ্ম বৈধতা অর্পণ করে।

চেষ্টা করে দেখুন

ব্যায়াম#regex.m8.l3.e1
প্রচেষ্টা: 0লোড হচ্ছে...

পাঠ্যের প্রতিটি http বা https URL খুঁজুন। স্কিম + হোস্ট + ঐচ্ছিক পথ।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

https? ঐচ্ছিক s এর জন্য, [\\w.-]+ ডোমেনের জন্য, এবং একটি গ্রুপ (?:\\/[^\\s]*)? ঐচ্ছিক পথের জন্য।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম পর্যালোচনা করুন

ব্যায়াম#regex.m8.l3.e2
প্রচেষ্টা: 0লোড হচ্ছে...

প্রতিটি IPv4 খুঁজুন (বিন্দু দ্বারা বিভক্ত 4 দশমিক অক্টেট)। অনুমতিমূলক সংস্করণ, কোন 0-255 চেক।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

'অক্টেট + ডট' 3 বার পুনরাবৃত্তি করতে (?:\\d{1,3}\\.){3} ব্যবহার করুন, তারপর শেষটির জন্য \\d{1,3}।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

অতিরিক্ত চ্যালেঞ্জ

ব্যায়াম#regex.m8.l3.e3
প্রচেষ্টা: 0লোড হচ্ছে...

Find all IPv4 addresses in the format `X.X.X.X` (composed of four 1-to-3 digit numbers separated by dots).

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

Use \b to enforce boundaries, (?:\d{1,3}\.){3} to repeat the octet and dot three times, and finally \d{1,3}.

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ