re.capture
re.capture(stringText, regex)
תיאור
הפונקציה מחלצת נתונים ממחרוזת באמצעות תבנית הביטוי הרגולרי שמופיעה בארגומנט.
הפונקציה הזו מקבלת שני ארגומנטים:
-
stringText: המחרוזת המקורית לחיפוש. -
regex: הביטוי הרגולרי שמציין את התבנית לחיפוש.
הביטוי הרגולרי יכול להכיל 0 או 1 קבוצות לחילוץ בתוך סוגריים. אם הביטוי הרגולרי מכיל 0 קבוצות לחילוץ, הפונקציה מחזירה את מחרוזת המשנה הראשונה שתואמת לביטוי הרגולרי. אם הביטוי הרגולרי מכיל קבוצה אחת לחילוץ, הפונקציה מחזירה את מחרוזת המשנה הראשונה שתואמת לקבוצה לחילוץ. הגדרת שתי קבוצות ללכידת נתונים או יותר מחזירה שגיאת קומפילציה.
סוגי נתונים של פרמטרים
STRING, STRING
סוג הערך שמוחזר
STRING
דוגמאות קוד
דוגמה 1
בדוגמה הזו, אם $e.principal.hostname מכיל את הערך 'aaa1bbaa2', הפונקציה תחזיר את הערך True כי היא מחזירה את המופע הראשון. בדוגמה הזו אין קבוצות ללכידה.
"aaa1" = re.capture($e.principal.hostname, "a+[1-9]")
דוגמה 2
בדוגמה הזו, המערכת מחלצת את כל מה שמופיע אחרי הסימן @ באימייל. אם השדה $e.network.email.from הוא test@google.com, הפונקציה תחזיר את הערך google.com. הדוגמה הבאה מכילה קבוצה לחילוץ אחת.
"google.com" = re.capture($e.network.email.from , "@(.*)")
דוגמה 3
אם הביטוי הרגולרי לא תואם לאף מחרוזת משנה בטקסט, הפונקציה מחזירה מחרוזת ריקה. אפשר להשמיט אירועים שבהם לא נמצאה התאמה על ידי החרגת המחרוזת הריקה. זה חשוב במיוחד כשמשתמשים ב-re.capture() עם אי-שוויון:
// Exclude the empty string to omit events where no match occurs.
"" != re.capture($e.network.email.from , "@(.*)")
// Exclude a specific string with an inequality.
"google.com" != re.capture($e.network.email.from , "@(.*)")