התכנות הקל על ההתמודדות עם נתונים טקסטואליים מובנים ובלתי מובנים. כלים כמו ביטויים רגולריים וספריות חיצוניות הופכים את המשימות הללו להרבה יותר קלות.
אתה יכול להשתמש ברוב השפות, כולל Python ו-JavaScript, כדי לאמת כתובות אתרים באמצעות ביטוי רגולרי. דוגמה רגולרית זו אינה מושלמת, אבל אתה יכול להשתמש בה כדי לבדוק כתובות אתרים למקרי שימוש פשוטים.
ביטוי רגולרי לאימות כתובת אתר
הביטוי הרגולרי לאימות כתובת אתר המוצג במאמר זה אינו מושלם. עשויות להיות דוגמאות מרובות של כתובות אתרים חוקיות שעלולות להיכשל באימות הרקסי הזה. זה כולל כתובות URL הכוללות כתובות IP, תווים שאינם ASCII ופרוטוקולים כמו FTP. הביטוי הרגולרי הבא מאמת רק את כתובות האתרים הנפוצות ביותר.
הביטוי הרגולרי יראה כתובת URL חוקית אם היא עומדת בתנאים הבאים:
- המחרוזת צריכה להתחיל עם אחד מהם http אוֹ https בא אחריו ://.
- האורך המשולב של תת-הדומיין והדומיין חייב להיות בין 2 ל-256. זה צריך להכיל רק תווים אלפאנומריים ו/או תווים מיוחדים.
- ה-TLD (דומיין ברמה עליונה) צריך להכיל רק תווים אלפביתיים והוא צריך להיות באורך של בין שניים לשישה תווים.
- סוף מחרוזת כתובת האתר יכול להכיל תווים אלפאנומריים ו/או תווים מיוחדים. וזה יכול לחזור על אפס או יותר פעמים.
אתה יכול לאמת כתובת אתר ב-JavaScript באמצעות הביטוי הרגולרי הבא:
^(http (s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
באופן דומה, אתה יכול להשתמש בביטוי הרגולרי הבא כדי לאמת כתובת אתר ב- Python:
^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$
איפה:
- (http|https)://) מוודא שהמחרוזת מתחילה ב-http או ב-https ואחריה ב-://.
- [-a-zA-Z0-9@:%._\\+~#?&//=] מציין תווים אלפאנומריים ו/או תווים מיוחדים. המופע הראשון של קבוצה זו מייצג את קבוצת התווים שיש לאפשר בתת-דומיין ובחלק של התחום. בעוד המופע השני של קבוצה זו מייצג את קבוצת התווים שיש לאפשר במחרוזת השאילתה או חלק ספריית המשנה.
- {2,256} מייצג 2 עד 256 (שניהם כולל) פעמים מחוון התרחשות. זה מציין שהאורך המשולב של תת-הדומיין והדומיין חייב להיות בין שניים ל-256.
- \. מייצג את תו הנקודה.
- [א-ז]{2,6} פירושו כל אותיות קטנות מ-a עד ת באורך בין שתיים לשש. זה מייצג את קבוצת התווים שיש לאפשר בחלק של הדומיין ברמה העליונה.
- \ב מייצג את הגבול של מילה, כלומר התחלה של מילה או סוף של אחת.
- * הוא אופרטור חזרה המציין אפס או יותר עותקים של מחרוזת השאילתה, פרמטרים או ספריות משנה.
- ^ ו $ ציין את ההתחלה והסוף של המחרוזת בהתאמה.
אם אתה מרגיש לא בנוח עם הביטוי שלעיל, בדוק מדריך למתחילים לביטויים רגולריים ראשון. לביטויים רגולריים לוקח קצת זמן להתרגל. חוקרים כמה דוגמאות כמו אימות פרטי חשבון משתמש באמצעות ביטויים רגולריים אמור לעזור.
הביטוי הרגולרי שלמעלה עונה על סוגי כתובות האתרים הבאים:
- https://www.something.com/
- http://www.something.com/
- https://www.something.edu.co.in
- http://www.url-with-path.com/path
- https://www.url-with-querystring.com/?url=has-querystring
- http://url-without-www-subdomain.com/
- https://mail.google.com
שימוש בביטוי הרגולרי בתוכנית
הקוד המשמש בפרויקט זה זמין ב-a מאגר GitHub והוא בחינם עבורך לשימוש תחת רישיון MIT.
זוהי גישת Python לאימות כתובת URL:
יְבוּא מִחָדָשׁ
defvalidateURL(כתובת אתר):
regex = "^((http|https)://)[-a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)$"
r = re.compile (רגקס)אם (מִחָדָשׁ.לחפש(ר, כתובת אתר)):
הדפס("תָקֵף")
אַחֵר:
הדפס("לא בתוקף")
url1 = "https://www.linkedin.com/"
validateURL(url1)
url2 = "http://apple"
validateURL(url2)
url3 = "iywegfuykegf"
validateURL(url3)
url4 = "https://w"
validateURL(url4)
קוד זה משתמש ב-Python's re.compile() שיטה לקמפל את תבנית הביטוי הרגולרי. שיטה זו מקבלת את תבנית הביטוי הרגולרי כפרמטר מחרוזת ומחזירה אובייקט של תבנית הביטוי הרגולרי. אובייקט דפוס רגקס זה משמש עוד כדי לחפש מופעים של תבנית הביטוי הרגולרי בתוך מחרוזת היעד באמצעות מחקר() שיטה.
אם הוא מוצא לפחות התאמה אחת, ה מחקר() השיטה מחזירה את ההתאמה הראשונה. שימו לב שאם אתם רוצים לחפש את כל ההתאמות לדפוס ממחרוזת היעד, עליכם להשתמש ב- re.findall() שיטה.
הפעלת הקוד שלמעלה תאשר שכתובת ה-URL הראשונה תקפה אך השאר לא.
באופן דומה, אתה יכול לאמת כתובת אתר ב-JavaScript באמצעות הקוד הבא:
פוּנקצִיָהvalidateURL(כתובת אתר) {
אם(/^(http (s):\/\/.)[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$/g.test (כתובת אתר)) {
console.log('תָקֵף');
} אַחֵר {
console.log('לא בתוקף');
}
}
validateURL("https://www.linkedin.com/");
validateURL("http://apple");
validateURL("iywegfuykegf");
validateURL("https://w");
שוב, הפעלת קוד זה תאשר שכתובת ה-URL הראשונה חוקית והשאר לא חוקיים. הוא משתמש ב-JavaScript התאמה() שיטה להתאים את מחרוזת היעד לתבנית ביטוי רגולרי.
אמת נתונים חשובים באמצעות ביטויים רגולריים
אתה יכול להשתמש בביטויים רגולריים כדי לחפש, להתאים או לנתח טקסט. הם משמשים גם לעיבוד שפה טבעית, התאמת דפוסים וניתוח מילוני.
אתה יכול להשתמש בכלי רב עוצמה זה כדי לאמת סוגי נתונים חשובים כמו מספרי כרטיסי אשראי, פרטי חשבון משתמש, כתובות IP ועוד.