دروس الوحدة (3/4)
استخراج عناوين URL وعناوين IP
في النص الحر (السجلات والمقالات والمقالب) من الشائع الرغبة في استخراج عناوين URL و عناوين IP. دعونا نلقي نظرة على الأنماط القوية لكليهما.
عناوين URL http/https
Pattern: https?:\/\/[\w.-]+(?:\:\d+)?(?:\/[^\s]*)?https?:\/\/-- المخطط، معsاختياري.[\w.-]+-- المضيف (المجال، النطاقات الفرعية، ربماlocalhost).(?:\:\d+)?- منفذ اختياري.(?:\/[^\s]*)?-- مسار اختياري، حتى المسافة البيضاء الأولى.
يلتقط https://example.com، http://localhost:3000/api/users،
محمي_INLINE_8.
IPv4
يتكون IPv4 من 4 ثمانيات عشرية مفصولة بنقاط:
Pattern: \b(?:\d{1,3}\.){3}\d{1,3}\bإصدار "جيد بما فيه الكفاية": يقبل أيضًا قيمًا غير صالحة مثل
محمي_INLINE_9. بالنسبة للإصدار الصارم، ستحتاج إلى تغيير النطاق
(25[0-5]|2[0-4]\d|[01]?\d\d?)، وهو أطول بكثير.
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الدقة مقابل الإيجاز
تتطلب مطابقة عناوين URL أو عناوين IP موازنة التسامح مع الأنماط. يتحقق مدقق IP الصارم من عدم تجاوز أي ثماني بتات لـ 255. ومن ناحية أخرى، يبحث المستخرج العملي عادةً عن أنماط مبسطة ويفوض التحقق الدقيق إلى كود مخصص.
جربه
ابحث عن كل عنوان URL http أو https في النص. المخطط + المضيف + المسار الاختياري.
إظهار التلميح
https؟ بالنسبة إلى s الاختيارية، [\\w.-]+ للمجال، والمجموعة (?:\\/[^\\s]*)؟ للمسار الاختياري.
الحل متاح بعد 3 من المحاولات
تمرين المراجعة
ابحث عن كل IPv4 (4 ثمانيات عشرية مفصولة بالنقاط). إصدار مسموح به، لا يوجد فحص 0-255.
إظهار التلميح
استخدم (?:\\d{1,3}\\.){3} لتكرار 'octet + dot' 3 مرات، ثم \\d{1,3} للمرة الأخيرة.
الحل متاح بعد 3 من المحاولات
التحدي الإضافي
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 من المحاولات