וורדפרס ואתרי אינטרנט

owl-158414_960_720
דורג 5 מתוך 5

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

ביטויים רגולרים

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

נתחיל.

ביטויים רגולרים כפי שאמרנו נכונים לכל שפה אנחנו נדגים על PHP

הפקודה ב PHP שמתעסקת עם ביטויים רגולרים היא

 

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

שבעצם אומרת תמצא לי את ה pattren  (תבנית) הזו שמופיעה ב subject ותכניס אותה לתוך המערך matches

יוחזר 1 אם נמצא משהו 0 אם לא נמצא כלום

$matches[0]  – יחזיר את כל התבנית שנמצאה

$matches[1] – יחזיר את תתי התבנית מהתבנית שנמצאה תתי תבנית מסמנים בסורגרים () נדבר על זה בהמשך.

 

ישנם כמה סימנים בסיסים שאיתם נתחיל

. (נקודה) – מציינת כל תו כלומר אם אנחנו לא יודעים את התו שאנחנו מחפשים אפשר להשים במקומו נקודה.

*(כוכבית)- מציין 0 מופעים או יותר כלומר אם רוצים לחפש תו מסויים שהוא מופיע מספר פעמים או שבכלל לא מופיע אז נשים לידו כוכבית

ואם נצרף .* נקבל תו מסויים שמופיע מספר פעמים או שלא מופיע כלל.

+(פלוס) – מציין לפחות מופע אחד או יותר השוני בינו לבין כוכבית שהוא מחייב מופע הוא לא מאפשר להשאיר ריק

למשל:

מחרוזת מהסוג הזה

abcd

אם התבנית שלנו תהיה

abcd.*

נקבל תוצאה abcd

אבל אם התבנית שלנו תהיה

abcd.+

לא נקבל שום תוצאה כי בתבנית הזאת אנחנו מחפשים עוד תו אחד שיהיה אחרי ה abcd.

? – סימן שאלה מציין או שקיים פעם אחת או שלא קיים

לדוגמא

התבנית הזאת :

"rai?n"

מוצאת את הביטויים 
"ran", "rain"

 

^ – הסימן הזה מציין תחילת מחרוזת כלומר אנחנו מחפשים מחרוזת שמתחילה בתווים הנכניס

דוגמא

/^abc/

מחפש מחרוזת שמתחילה ב abc

$- הסימן הזה מציין סוף מחרוזת.

 

סוגריים מרובעים:

סוגריים מרובעים

<?php
$var ="<div id='jos575'>HELLO MY NAME </div> IS ffdfgd JOS SFJKLSJF SKJFLKJS FDKLAJSLFKJA KLJF";
$pattren = preg_match("/<div id='jos[1-9]{1,9}'>.*<\/div>/",$var, $str);
echo $str[0];
?>

 

חשוב מאוד:

במידה ורוצים להשתמש ב / כמו בדוגמא למעלה עם הסגירת div צריך להשים סלאש נגדי \ וכן אם רוצים להשתמש בנקודה שזה סימן שמור צריך להשים סלאש נגדי וכ"ו

עוד אופרטורים ודגמאות אפשר למצא

https://msdn.microsoft.com/en-us/library/az24scfc%28v=vs.110%29.aspx

אתר אונלייין לבדיקת ביטויים רגולרים

https://regex101.com/

תפריט נגישות