עזרה:ביטוי רגולרי

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש

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

הקדמה

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

Gadget-EditReplace.png

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

כללים בסיסיים

להלן התווים המשמשים כתווי בקרה בביטויים רגולריים:

תו הסבר דוגמה
מחרוזת ביטוי רגולרי ביטוי שילכד
. מסמלת תו אחד מכל סוג (מספר או אות) ‏‏‏אבגד‏ א.ג אבג
^ התאמה להתחלה של מחרוזת אבגד א
$ התאמה לסיומה של מחרוזת אבגד ד$ ד
? 'תו אפשרי': התו מתייחס לתו או לקבוצה שלפניו - תו קיים או העדר תו כלשהו (0 או יותר מהתו) אג אב?ג אג
אבג אב?ג אבג
אבבג אב?ג אין התאמה
אשג אב?ג אין התאמה
* 'תו חוזר': התו מתייחס לתו או לקבוצה שלפניו - תו או חזרות התו, או העדר תו (0 או יותר מהתו וכפילויות) אג אב*ג אג
אבג אב?ג אבג
אבבג אב?ג אבבג
אשג אב?ג אין התאמה
+ 'תו בהכרח: התו מתייחס לתו או לקבוצה שלפניו - התו או חזרות קיימים (1 או יותר מהתו וכפילויות) אג אב+ג (אין התאמה)
אבג אב?ג אבג
אבבג אב?ג אבבג
אשג אב?ג אין התאמה
[] התאמה לתווים בטווח שצויין אבגדבגח [א-ג]ג[זח] בגח
() קיבוץ מספר תווים לקבוצה אחת אבאבדעאבאבדהו (אב)+דה אבאבדה
{n,m} מספר המופעים. כאשר m הוא גבול תחתון ו-n הוא גבול עליון אאאבבבג א{1,3}ב{2} אאאבב
| או (OR), בשימוש בתוך קבוצה בבגגדד גג)(בב|דד) גגדד

שאר התווים מייצגים את עצמם. כדי להשתמש בתו בקרה לעיל כתו רגיל, יש להקדים לו קו נטוי (\).

טווח של אותיות או ספרות:

  • בכדי לרשום טווח או מספר אותיות או ספרות להחלפה, יש להשתמש בסוגריים מרובעות: []משמעות ביטוי זה שהוא יחפש אות אחת בלבד מהסוג שקיים בסוגריים.

תו אחד

למשל כדי להחליף את האותיות "אלף" או "למד" (כל אחת בנפרד) בכוכבית יש לרשום

שדה ראשון שדה שני
[אל] *

התוצאה תהיה

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

יהפוך ל...

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

טווח של של תוים

ניתן לציין טווח של אותיות או ספרות על ידי מקף. למשל הביטוי [ג-ע] יכלול את כל האותיות ביניהם כולל גימל ועין. ואילו הביטוי [2-7] יכלול את כל הספרות בין 2 ל-7 כולל.

למשל הביטוי

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

החלפה של מספר תוים

  • התוים [] מציינים מופע אחד בלבד של התוים, כדי לציין את מספר המופעים המבוקשים נשתמש בתוים {}

לדוגמה {2}[A-Z] מציין שהתוכנה תחפש שתי אותיות גדולות. א{2,4} מציין שהתוכנה תחפש מחרוזות שמורכבות מהאות אלף בלבד בגדלים של שניים עד ארבע (אא, אאא, אאא).

למשל הביטוי הבא:

שדה ראשון שדה שני
[אל]{2} *

יתן את התוצאה הבאה:

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

ביטוי שולל

  • הביטוי [^] שולל את התווים שנמצאים בתוך הסוגריים המרובעות, ומורה לאתר כל אות ששונה מהתוים שבסוגריים.

למשל [א][^ל] משמעותו חפש את האות אלף ולידה כל אות אחרת שאיננה למד.

אם נכתוב

שדה ראשון שדה שני
[א][^ל] *

נקבל:

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

ניתן לראות כי במילה "אלגוריתם" האלף והלמד לא הוחלפו.

ביטוי רגולרי קבוע

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

  • \d - מציין תו ספרתי מ0-9 = [0-9]
  • \w - מציין תו של אות או ספרה =[a-zA-Z0-9]
  • \s - מציין רווח כל שהוא = [\r\t\n\f]
  • \n - מציין מעבר שורה (אנטר)

אותיות גדולות מציינות את ההיפך.

  • \D - מציין כל תו שאינו מספרי = [0-9^]
  • \W - מציין כל תו שאינו אות או ספרה = [a-zA-Z0-9^]
  • \S - מציין כל תו שאינו רווח = [\r\t\n\f^]

יש לשים לב, כי בתוך הסוגרים המרובעות התו \ מורה שהתו הבא הוא תו רגיל ולא תו בקרה.

החלפת תווים תוך שמירה על התו המקורי

  • $ - מאפשר להוסיף תווים על התו המקורי.

כך למשל אם רוצים לגרום לכל ערך מספרי להיות מוקף בסוגריים מסולסלות יש לכתוב


שדה ראשון שדה שני
(\d) {$1}


אם היו נתונים לנו המשפטים הבאים:

1. לקנות לחם וחלב.
2. לא לשכוח להוציא את הילד מהגן.

התוצאה תהיה:

{1}. לקנות לחם וחלב.
{2}. לא לשכוח להוציא את הילד מהגן.


שמירה על התו המקור עם שימוש בתו שולל

דוגמה נוספת היא לסמן אותיות שעלולות להיות אותיות בכל"מ כלומר קידומת בתחילת אותיות מקור:

שדה ראשון שדה שני
([^א-ת][בכלמ]) $1+


ראשית יש לשלול מלפני אותיות בכל"מ כל אות אחרת מהאלפבית העברי, ובתו שלאחר מכן לחפש רק אחת מארבע אותיות אלו. ולשים לאחריה סימן +.

הפיסקה:

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

תהפוך ל:

מ+פלי ניאגרה, ב+גבול שבין ארצות הברית ל+קנדה, שימשו כ+ר פעולה פורה ל+פעלולנים: ב+שנת 1829, זינק סם פטץ' מ+ראש סולם גבוה אל הגיא שמתחת ל+מפלים ונשאר ב+חיים. ב+-1859, הילך ז'אן פרנסואה גרבלה על חבל מ+תוח ב+ין שתי גדות הנהר. ב+-1901, חצתה המורה אנני אדסון טיילור את המפלים ב+תוך חבית החמצה.


איתור אותיות שחוזרות על עצמן

ישנה אפשרות לאתר מספר אותיות שחוזרות על עצמן:

שתי אותיות שחוזרות על עצמן. (הוספת "\1" תוסיף עוד אות)

שדה ראשון שדה שני
(.)\1 **


הפיסקה:

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

תהפוך ל:

מפלי ניאגרה, בגבול שבין ארצות הברית לקנדה, שימשו כר פעולה פורה לפעלולנים: בשנת 1829, זינק סם פטץ' מראש סולם גבוה אל הגיא שמתחת למפלים ונשאר בח**ם. ב-1859, הילך ז'אן פרנסואה גרבלה על חבל מתוח בין שתי גדות הנהר. ב-1901, חצתה המורה א**י אדסון ט**לור את המפלים בתוך חבית החמצה.

קישורים חיצוניים

Logo hamichlol 3.png
הדף באדיבות ויקיפדיה העברית, קרדיט,
רשימת התורמים
רישיון cc-by-sa 3.0