ביטויים רגולריים ב-Data Studio

ביטוי רגולרי (regexp) הוא רצף ספציפי של תווים שמתאים בצורה רחבה או מצומצמת יותר לדפוסים בנתונים. אתם יכולים להשתמש בביטויים רגולריים כדי ליצור מסננים גמישים יותר בתרשימים ובאמצעי בקרה. אפשר גם להשתמש בפונקציות הביטויים הרגולריים הבאות בנוסחאות של שדות מחושבים:

תפקידתיאור
REGEXP_CONTAINS הפונקציה מחזירה true אם ערך הקלט מכיל את תבנית הביטוי הרגולרי, אחרת היא מחזירה false.

מידע נוסף על REGEXP_CONTAINS
REGEXP_EXTRACT הפונקציה מחזירה את מחרוזת המשנה הראשונה בערך הקלט שתואמת לתבנית הביטוי הרגולרי.

מידע נוסף על REGEXP_EXTRACT
REGEXP_MATCH הפונקציה מחזירה true אם ערך הקלט תואם לתבנית הביטוי הרגולרי, אחרת היא מחזירה false.

מידע נוסף על REGEXP_MATCH
REGEXP_REPLACE הפונקציה מחליפה את כל המופעים של טקסט שתואמים לדפוס הביטוי הרגולרי בערך הקלט במחרוזת replacement.

מידע נוסף על REGEXP_REPLACE

חלופות לשימוש בביטויים רגולריים

יצירת ביטויים רגולריים יכולה להיות מסובכת. לפני שמשתמשים בפונקציית regexp, כדאי לשקול אם אפשר להשיג את המטרה באמצעות פונקציית טקסט פשוטה יותר. הפונקציות הבאות מספקות פונקציונליות שדומה לביטוי רגולרי, בלי שתצטרכו לדעת את התחביר של הביטוי הרגולרי.

תפקיד תיאור
CONTAINS_TEXT

הפונקציה מחזירה את הערך True אם הטקסט שצוין נמצא בשדה או בביטוי, אחרת היא מחזירה את הערך False.

ENDS_WITH

הפונקציה מחזירה את הערך True אם השדה או הביטוי מסתיימים בטקסט שצוין, אחרת היא מחזירה את הערך False.

LEFT_TEXT

הפונקציה מחזירה מספר תווים מתחילת המחרוזת שצוינה.

REPLACE הפונקציה מחזירה עותק של הטקסט המקורי, שבו כל המופעים של הטקסט לחיפוש מוחלפים בטקסט החלופי.
RIGHT_TEXT

הפונקציה מחזירה מספר תווים מסוף המחרוזת שצוינה.

STARTS_WITH

הפונקציה מחזירה את הערך True אם השדה או הביטוי מתחילים בטקסט שצוין, אחרת היא מחזירה את הערך False.

TRIM

הפונקציה מחזירה טקסט ללא רווחים בתחילת הטקסט או בסופו.

דוגמאות לביטויים רגולריים

התאמה אם MyField מכיל תווי רווח:

REGEXP_CONTAINS(MyField, "\\s+")

מחולצת ספרייה ברמה העליונה בכתובת URL:

REGEXP_EXTRACT(URL, ^https://[^/]+/([^/]+)/)

לדוגמה, אם השדה URL הכיל את כתובת הדף הזה, הפונקציה הקודמת תחזיר looker-studio.

סיווג קמפיינים פרסומיים לפי שפה:

CASE
    WHEN REGEXP_MATCH(Campaign 2, R".*\|\s*en\s*\|.*") then "English"
    WHEN REGEXP_MATCH(Campaign 2, R".*\|\s*es\s*\|.*") then "Spanish"
    ELSE "Other language"
END

לדוגמה, אם מפעילים את הביטוי הרגולרי הזה על המאפיין קמפיין בחשבון ההדגמה של Google Analytics, מקבלים את התוצאות הבאות:

מסע פרסום שפה
קמפיין מס' 1 שפה אחרת
1000549 | Google Analytics Demo | DR | apontes | NA | US | en | Hybrid | AW SEM | BKWS | ~ AW - Google Brand (US) אנגלית
1000549 | Google Analytics Demo | DR | apontes | NA | CA | es | Hybrid | AW SEM | BKWS | ~ AW - YouTube (CA) ספרדית

החלפת הסדר של קטעים במחרוזת:

REGEXP_REPLACE(Campaign, R'(.*):(.*)', R'\2 \1')

בדוגמה הקודמת, הקטעים מופרדים באמצעות נקודתיים (:).

מטא תווים

מטא תווים הם תווים שיש להם משמעות מיוחדת בביטוי רגולרי. אלה כמה מהמטא-תווים הנפוצים ביותר שאפשר להשתמש בהם. שימו לב: הדוגמאות האלה ייפתחו במרכז העזרה של Google Analytics, אבל המידע שמוצג שם רלוונטי גם ל-Data Studio.

תווים כלליים לחיפוש

המשמעות של "על סמך תווים"תיאורדוגמה
. תואם לתו בודד כלשהו (אות, מספר או סימן).

התאמות לביטוי "‎1. ‎": 10, ‏ 1A

התאמות לביטוי "1.1": 111, ‏ 1A1

דוגמאות להתאמה לתו יחיד

? תואם לתו הקודם 0 פעמים או פעם אחת. התאמות לביטוי "‎10?‎": 1, ‏ 10

דוגמאות להתאמה של תו 0 פעמים או פעם אחת
+ תואם לתו הקודם פעם אחת או יותר. התאמות לביטוי "‎10+‎": 10, ‏ 100

דוגמאות להתאמה של תו אחד או יותר
* תואם לתו הקודם 0 פעמים או יותר. התאמות לביטוי "‎10* ‎":‏ 1, ‏ 10, ‏ 100

דוגמאות להתאמה של תו 0 פעמים או יותר
| יוצר התאמת OR.

לא משתמשים בסוף

ביטוי.
התאמות לביטוי "‎1|10": 1, ‏ 10

דוגמאות ליצירת התאמה מסוג OR

תווי עוגן

המשמעות של "על סמך תווים"תיאורדוגמה
^ תואם לתווים הצמודים בתחילת מחרוזת. התאמות לביטוי "‎^10": 10 , ‏ 10 0, ‏ 10 x

הביטוי ‎^10 לא תואם ל-‎1 10 , ‏ ‎1 10 x

דוגמאות להתאמת תווים אחרי תחילת מחרוזת
$ תואם לתווים הצמודים בסוף מחרוזת. התאמות לביטוי "‎10$": 1 10 , ‏ 10 10

הביטוי ‎10$ ‎ לא תואם ל- 10 0, ‏ 10 x

דוגמאות להתאמת תווים לפני סוף המחרוזת

קבוצות

המשמעות של "על סמך תווים"תיאורדוגמה
( ) תואם לתווים שבסוגריים בסדר מדויק במקום כלשהו במחרוזת.

משמש גם לקיבוץ ביטויים אחרים.
התאמות לביטוי "(10)":‏ 10 , ‏ 10 1, ‏ 10 11

הביטוי ‎([0-9]|[a-z])‎ תואם לכל מספר או אות קטנה

דוגמאות לקיבוץ תווים וביטויים
[ ] התאמה לכל אחד מהתווים שבסוגריים. ‫part[12] תואם ל-part1 ול-part2

דוגמאות ליצירת קבוצת תווים להתאמה
- יוצר טווח של תווים בתוך סוגריים מרובעים להתאמה במקום כלשהו במחרוזת. הביטוי [0-9] תואם לכל מספר מ-0 עד 9

דוגמאות להתאמה לטווח של תווים

Escape

המשמעות של "על סמך תווים"תיאורדוגמה
\\ מציין שיש לפרש את התו הצמוד באופן מילולי ולא כמטא-תו של ביטוי רגולרי. ‫\\ מציין שיש לפרש את הנקודה הצמודה כנקודה או כנקודה עשרונית ולא כתו כללי לחיפוש

הביטוי ‎216\\.239\\.32\\.34 תואם לביטוי ‎216.239.32.34

דוגמאות לשימוש בתו בריחה

סוגי דמויות

מחלקהתווים
‫‎\d ספרות (≡ [0-9])
‎\D לא ספרות (≡ [^0-9])
‎\s רווח לבן (≡ [\t\n\f\r ])
‎\S לא רווח לבן (≡ [^\t\n\f\r ])
‫‎\w תווים במילה (≡ [0-9A-Za-z_])
‫‎\W לא תו במילה (≡ [^0-9A-Za-z_])

טיפים

שימוש בביטויים פשוטים

כדאי להשתמש בביטויים רגולריים פשוטים. ככל שהביטויים פחות מורכבים, כך קל יותר למשתמש אחר לפרש ולשנות אותם.

תלות באותיות רישיות

כברירת מחדל, ביטויים רגולריים הם תלויי אותיות רישיות (case-sensitive). כדי שההתאמה לא תהיה תלוית-אותיות רישיות, משתמשים בדגל (?i). לדוגמה, הביטוי הזה מחלץ את המחרוזות abc123 ו-ABC123:

REGEXP_EXTRACT(MyField, '(?i)(a.*)')

שימוש בתו בריחה (escape) לתו נטוי הפוך

אם רוצים לכתוב תנאי סינון שכולל תו לוכסן הפוך, צריך להוסיף תו לוכסן הפוך נוסף כדי לסמן בתו בריחה (escape) את תו הלוכסן ההפוך.

לדוגמה, הביטוי הבא בודק אם שדה מכיל את המחרוזת green\yellow:

REGEXP_CONTAINS(field_name, "green\\yellow")

אפשר גם להוסיף לפני הביטוי את הקידומת של מחרוזת ליטרלית גולמית, R. אם תעשו את זה, לא תצטרכו להשתמש בתו בריחה (escape) לתווים מיוחדים כמו לוכסן הפוך. אפשר לכתוב את הדוגמה הקודמת גם כך:

REGEXP_CONTAINS(field_name, R"green\yellow")