logo

MySQL REGEXP_REPLACE() פונקציה

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

REGEXP_REPLACE(), REPLACE(), ו ה-TRANSLATE() לתפקד ב MySQL הם פועלים כמוהו, פרט לכך שה-TRANSLATE מאפשר לנו לבצע החלפות מרובות של תווים בודדים והפונקציה REPLACE מחליפה מחרוזת שלמה אחת במחרוזת אחרת, בעוד REGEXP_REPLACE מחפש במחרוזת תבנית ביטוי רגיל.

תחביר

להלן תחביר בסיסי לשימוש בפונקציה זו ב-MySQL:

 REGEXP_REPLACE (expression, pattern, replace_string[, pos[, occurrence[, match_type]]]) 

הסבר פרמטר

ההסבר של פרמטרי הפונקציה REGEXP_REPLACE() הם:

ביטוי: זוהי מחרוזת קלט שעליה נבצע חיפוש באמצעות פרמטרים ופונקציות של ביטויים רגולריים.

מעצב מחרוזת

דפוסים: הוא מייצג את תבנית הביטוי הרגולרי עבור מחרוזת משנה.

replace_string: זוהי מחרוזת משנה שתוחלף אם ההתאמה תימצא.

הפונקציה REGEXP_INSTR() משתמשת בפרמטרים אופציונליים שונים המפורטים להלן:

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

הִתרַחֲשׁוּת: הוא משמש כדי לציין עבור איזו מופע של התאמה אנחנו הולכים לחפש. אם לא נציין פרמטר זה, כל המופעים יוחלפו.

התאמה_סוג: זוהי מחרוזת המאפשרת לנו לחדד את הביטוי הרגולרי. הוא משתמש בתווים האפשריים הבאים כדי לבצע התאמה.

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

הבה נבין זאת בעזרת דוגמאות שונות.

דוגמא

ההצהרה הבאה מסבירה את הדוגמה הבסיסית של הפונקציה REGEXP_REPLACE ב-MySQL.

 mysql> SET @str = 'Javatpoint is a great websites'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'great', 'an educational') AS 'Replaceable String'; 

הנה הפלט:

MySQL REGEXP_REPLACE() פונקציה

נניח שמחרוזת הקלט שלנו מכילה התאמות מרובות בתוך המחרוזת , אז פונקציה זו תחליף את כולם. ראה את ההצהרות שלהלן:

 mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'PGDCA') AS 'Replaceable String'; 

הנה הפלט:

דפוס מפה
MySQL REGEXP_REPLACE() פונקציה

אם למחרוזת הקלט ולמחרוזת הניתנת להחלפה אין התאמה, ההצהרות מחזירות את המחרוזת המקורית. ראה את הדוגמה שלהלן:

 mysql> SET @str = 'BCA MCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'MBA', 'PGDCA') AS 'Resultant String'; 

הנה הפלט:

MySQL REGEXP_REPLACE() פונקציה

אם נרצה להחליף את המחרוזת ב מפרט את העמדה כדי להתחיל בהחלפה, נוכל להשתמש בפונקציה REGEX_REPLACE באופן הבא:

javascript לתפריט נפתח
 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2) AS 'Replaceable String'; 

בהצהרה זו, ציינו את המיקום כ-2 כדי להתחיל את ההחלפה. ביצוע שאילתה זו, נקבל את הפלט שלהלן שבו נוכל לראות שהמיקום הראשון של המחרוזת הניתנת להחלפה אינו מוחלף.

MySQL REGEXP_REPLACE() פונקציה

אנו יודעים שכל המופעים של המחרוזת התואמת מוחלפים כברירת מחדל. עם זאת, יש לנו גם אפשרות לציין את המופע הספציפי להחלפת המחרוזת התואמת באמצעות ה- הִתרַחֲשׁוּת פָּרָמֶטֶר. ראה את הדוגמה שלהלן:

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'BBA', 'MCA', 2, 2) AS 'Replaceable String'; 

בדוגמה זו, מיקום ההתחלה של המחרוזת הניתנת להחלפה הוא 2 שהגיע לאחר תחילת ההתרחשות הראשונה. לכן, מופע 2 הפך למופע 1, והתרחשות 3 הפכה למופע 2. ראה את הפלט שלהלן:

MySQL REGEXP_REPLACE() פונקציה

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

 mysql> SET @str = 'BBA BCA BBA BCA BBA'; mysql> SELECT @str AS 'Original String', REGEXP_REPLACE(@str, 'bba', 'MCA', 1, 0, 'c') AS ' Case-Sensitive', REGEXP_REPLACE(@str, 'bba', 'MCA', 1, 0, 'i') AS ' Case-Insensitive'; 

הנה הפלט:

MySQL REGEXP_REPLACE() פונקציה