logo

PHP preg_match() פונקציה

הפונקציה preg_match() היא פונקציה מובנית של PHP שמבצעת התאמת ביטוי רגולרי. פונקציה זו מחפשת במחרוזת תבנית, ומחזירה true אם התבנית קיימת אחרת מחזירה false.

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

תחביר

 int preg_match (string $pattern, string $subject, array $matches, int $flags, int $offset) 

הערה: $offset הוא פרמטר אופציונלי המציין את המיקום מהיכן להתחיל את החיפוש.

פרמטרים

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

תבנית

זהו פרמטר מסוג מחרוזת. פרמטר זה מחזיק את התבנית לחיפוש כמחרוזת.

נושא

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

התאמות

אם מסופק פרמטר התאמה, הוא יכיל את תוצאות החיפוש.

התאמות[0] - זה יחזיק את הטקסט, שהתאים לתבנית השלמה.

התאמות[1] - הוא יכיל את הטקסט, שתאם את תבנית המשנה הראשונה שנתפסה בסוגריים, וכן הלאה.

דגלים

תוכנית שלום java

לדגלים יכולים להיות הדגלים הבאים:

    PREG_OFFSET_CAPTURE:אם הדגל הזה מועבר ב-preg_match(), עבור כל התאמה שמתרחשת, היסט המחרוזת הנלווה יחזור גם הוא.PREG_UNMATCHED_AS_NULL:אם הדגל הזה יועבר ב-preg_match(), תת-דפוס לא תואם ידווח כ-NULL, אחרת הם ידווחו כמחרוזת ריקה.

לְקַזֵז

כברירת מחדל, החיפוש מתחיל מתחילת הפרמטר $subject. הפרמטר offset משמש כדי לציין את המקום בו יתחיל החיפוש. זה פרמטר אופציונלי.

סוג החזרה

הפונקציה preg_match() מחזירה true אם התבנית תואמת אחרת, היא מחזירה false.

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

דוגמאות

 <?php //initialize a variable of string type $site = 'javatpoint'; preg_match('/(java)(t)(point)/', $site, $matches, PREG_OFFSET_CAPTURE); //display the matches result print_r($matches); ?> 

תְפוּקָה:

 Array ( [0] =&gt; Array ( [0] =&gt; javatpoint [1] =&gt; 0 ) [1] =&gt; Array ( [0] =&gt; java [1] =&gt; 0 ) [2] =&gt; Array ( [0] =&gt; t [1] =&gt; 4 ) [3] =&gt; Array ( [0] =&gt; point [1] =&gt; 5 ) ) 

אנו יכולים לראות את הפלט לעיל כפי שניתן להלן כדי להבין אותו טוב יותר.

 Array ( [0] =&gt; Array ( [0] =&gt; javatpoint [1] =&gt; 0 ) [1] =&gt; Array ( [0] =&gt; java [1] =&gt; 0 ) [2] =&gt; Array ( [0] =&gt; t [1] =&gt; 4 ) [3] =&gt; Array ( [0] =&gt; point [1] =&gt; 5 ) ) 

דוגמאות: חיפוש לא תלוי רישיות

 <?php //initialize a variable of string type $website = 'JTP is a best online platform to learn.'; //case insensitive search for word jtp //The 'i' after pattern delimiter indicates case-insensitive search $res = preg_match('/jtp/i', $website, $matches); if ($res) { echo 'Pattern matched in string.</br>&apos;; print_r($matches); } else { echo &apos;Pattern not matched in string.&apos;; } ?&gt; 

תְפוּקָה:

 Pattern matched in string. Array ( [0] =&gt; JTP ) 

דוגמאות: באמצעות גבול מילים ()

 <?php /* The  indicates the word boundary in the pattern. So, it matches only the distinct word like 'web', and words like 'coreweb' or ' webinar' do not match partially.*/ if (preg_match('/web/i', 'PHP is a web scripting language.')) { echo 'A match was found. </br>&apos;; } else { echo &apos;A match was not found. <br>&apos;; } if (preg_match(&apos;/web/i&apos;, &apos;PHP is a website scripting language.&apos;)) { echo &apos;A match was found.&apos;; } else { echo &apos;A match was not found.&apos;; } ?&gt; 

תְפוּקָה:

 A match was found. A match was not found. 

דוגמאות: הוצא את שם הדומיין מכתובת האתר

 

תְפוּקָה:

ההבדל בין קרח לשלג
 Domain name is: javatpoint.com 

תחביר Regex (ביטוי רגולרי).

[א ב ג] מתאים לתו בודד - a, b או c
[^abc] מתאים לכל תו בודד מלבד a, b או c
[א-ז] מתאים לכל תו בודד בטווח a-z
[a-zA-Z] כל תו בודד בטווח a-z או A-Z
^ תחילת שורה
$ סוף שורה
א התחלה של מיתר
עם סוף מיתר
. כל דמות בודדת
s כל תו של רווח לבן
S כל תו שאינו רווח לבן
ד כל ספרה
D כל לא ספרתי
In כל תו של מילה (אות, מספר, קו תחתון)
IN כל תו שאינו מילולי
ב בודק גבול מילים
/?/ מתחיל ומסיים את הביטוי הרגולרי
(?) ללכוד את כל מה שתחום בסוגריים ()
(א|ב) א או ב
א? אפס או אחד מתוך א
א* אפס או יותר של א
a+ אחד או יותר מתוך א
a{3} בדיוק 3 מתוך א
a{3,} 3 או יותר של א
a{3,6} בין 3 ל-6 מתוך א
אני בדיקה לא תלוית רישיות
M הפוך נקודות להתאים לשורות חדשות
איקס התעלם מרווח לבן בביטוי רגיל

הסבר על התבנית '[^[a-zA-Z0-9._-] +@[a-zA-Z0-9-]+.[a-zA-Z.]{2,5}$/]'

    ''/?/''זה מציג את ההתחלה והסוף של הביטוי הרגולרי.'[^[a-zA-Z0-9._-]'זה מתאים לכל אותיות רישיות או קטנות, מספרים בין 0 ל-9, נקודה, קו תחתון או מקפים.'+@[a-zA-Z0-9-]'זה תואם לסמל @ ואחריו האותיות הגדולות או הקטנות, מספרים בין 0 ל-9 או מקפים.'+.[a-zA-Z.]{2.5}$/'הנקודה נמלטת באמצעות נטוי אחורי ולאחר מכן מתאימה לכל אותיות קטנות או גדולות באורך שבין 2 ל-5 בסוף המחרוזת.