regular_expression_examples

מסמכים קשורים
1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

תוכן העניינים

תוכן העניינים

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

פייתון

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

<4D F736F F D20E7E5F7E920E0E9EEE5FA20E1E8E1ECE42E646F63>

דף נגזרות ואינטגרלים לשאלון 608 כללים למציאת נגזרת של פונקציה: n 1. y' n x n, y הנגזרת x.1 נכפול בחזקה )נרשום אותה משמאל ל- (. x א. נחסר אחד מהחזקה. ב

מבוא לתכנות ב- JAVA תרגול 7

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

מבוא למדעי המחשב

תרגיל בית מספר 1#

ייבוא וייצוא של קבצי אקסל וטקסט

Microsoft Word - ExamA_Final_Solution.docx

HTML - Hipper Text Makeup Language

מדריך למרצים ומתרגלים 1

1 בגרות עח יולי 18 מועד קיץ ב שאלון x b 2 2 y x 6x שיעור ה- א x לכן, של קדקוד הפרבולה, ו-, מתקבל על ידי הנוסחה a. C(3, 9) ובהתאם, y. (3, 9) 2 C

Microsoft Word - tips and tricks - wave 5.doc

<4D F736F F D20F4FAF8E5EF20EEE5F2E320E020F1EEF1E8F820E120FAF9F2E3>

תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(

PowerPoint Presentation

מבוא למדעי המחשב

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

שאלהIgal : מערכים דו מימדיים רקורסיה:

מבוא למדעי המחשב

PowerPoint Presentation

שאלהIgal : מערכים דו מימדיים רקורסיה:

PowerPoint Presentation

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

PowerPoint Presentation

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

Slide 1

מבוא למדעי המחשב

מבוא למדעי המחשב

שקופית 1

שאלהIgal : מערכים דו מימדיים רקורסיה:

234114

ISI

Slide 1

Python 2.7 in Hebrew

דוגמאות שהוצגו בהרצאה 10 בקורס יסודות מערכות פתוחות דוגמה 1 דוגמאות של פונקציות ב- awk שמראות שהעברת פרמטרים של משתנים פשוטים היא by value והעברת פרמט

PowerPoint Presentation

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

PowerPoint Presentation

יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 י

PowerPoint Presentation

סרגל כלים ל-Outlook או לExplorer- מדריך למשתמש

ex1-bash

פתרון מבחן במיקרו בקרים תשעו

1 בחירת מנועי חיפוש באינטרנט תוצאות החיפושים באינטרנט, תלויות בבחירת מנוע חיפוש מתאים. אמנם גוגל הוא המנוע המוכר ביותר, ובכ"ז, לעתים השימוש במנוע אחר,

טעימה מסדנת 4 החלקים: קסמים מדהימים 3 מייסד בית הספר: יוני לחמי פלאפון:

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

תרגול 1

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

Microsoft Word - tik latalmid-final

Microsoft PowerPoint - lec10.ppt

untitled

תורת החישוביות תרגול הכנה לוגיקה ותורת הקבוצות מה יש כאן? בקורס תורת החישוביות נניח ידע בסיסי בתורת הקבוצות ובלוגיקה, והכרות עם מושגים בסיסיים כמו א"ב

" תלמידים מלמדים תלמידים."

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

תוכן הגדרת שאלת רב-ברירה ]אמריקאית[...2 הגדרת שאלת נכון\לא נכון...8 שאלות אמריקאיות 1

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

Slide 1

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

Slide 1

תרגול מס' 1

Microsoft Word - c_SimA_MoedB2005.doc

בגרות עז יולי 17 מועד קיץ ב שאלון ,000 א. ניתוח הנתונים מחירה של ספה הוא שקלים, והיא התייקרה ב-. 25% כאשר המחיר מתייקר ב- המחיר החדש הוא פי,

גילוי דעת 74.doc

שיעור מס' 6 – סבולות ואפיצויות

DCA & A/B Testing

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

People. Partnership. Trust מסלול Free פורטל החינוך מבית U-BTech מסלולים ומחירים חיבור לשירותי Office 365 ללא עלות פורטל התחברות הכולל ממשק למנב"ס ולסי

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

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

ב ה. ד. ג. ב. ב. אוניברסיטת תל אביב - בית הספר למדעי המחשב מבוא מורחב למדעי המחשב, חורף :22 תרגיל בית מספר 6 - להגשה עד 66 בינואר 3162 בשעה קיר

People. Partnership. Trust שלבי הפרויקט והמסלולים השונים - פלטפורמת "קהילה לומדת" מסלול Free שלבי הפרויקט: חיבור לשירותי Office 365 ללא עלות פורטל התח

תכנות בשפת פייתון ברק גונן

<4D F736F F D20F4F2E5ECE5FA20EEE5EEF6E0E5FA20312E646F63>

Slide 1

Microsoft Word - אלגברה מעורב 2.doc

Microsoft Word - Ass1Bgu2019b_java docx

פקולטה לחינוך מנהל סטודנטים Beit Berl College الكلية االكاديمية بيت بيرل 20/06/2016 י"ד/סיון/תשע"ו ייעוץ וירטואלי הרכבת מערכת )רישום לקורסים( באמצעות

תכנות מונחה עצמים א' – תש"ע

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

מבנים בדידים וקומבינטוריקה סמסטר אביב תשע"ט מספרי רמזי תרגול 11 הגדרה: (t R = R(s, הוא המספר הטבעי הקטן ביותר כך שבכל צביעה של צלעות הגרף וכחול(, קיים

שיעור 1

התגוננות בפני כוחות האופל

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

ע 001 ינואר 10 מועד חורף פתרונות עפר

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

<4D F736F F D20FAF8E2E5EC20E0ECE2E1F8E420EEF2E5F8E D F9E0ECE5FA2E646F63>

חטיבה של ג'יי סי הלת' קר בע"מ 1/10/2015 תקנון מבצע "תוכניות שנתיות" הטבה של חודשיים מתנה בעת רכישת "תוכנית שנתית" של עדשות מגע חד-יומיות ממותג אקיוביו

תמליל:

ביטוי רגולארי או באנגלית: Regular Expression כאשר רוצים לחפש על נושא מסוים (למשל בגוגל), כותבים בערך מה שרוצים ואז מנוע החיפוש מביא לנו המון קישורים שיש בהם את מה שחיפשנו בצורות שונות ומגוונות. אם איננו יודעים בדיוק מה אנחנו מחפשים אבל יודעים שזהו מספר טלפון. האם יש דרך לעשות זאת? יש לנו קובץ באורך 50,000 דפים ויש בו מספרי טלפון של שלוש חנויות שמוכרות טלפון סלולארי בחצי מחיר. בדיפדוף רגיל יקח לנו בערך 7 שעות למצוא את הראשון. איך אפשר לזרז את החיפוש? מסתבר שישנה דרך תכנותית לעשות זאת. אפשר ליצור תבנית שניראת כמו מספר טלפון ולבקש חיפוש של תבנית זו. בפייתון אפשר לייבא את המודול שנקרא re לשם כך. אם נרצה לחפש תבנית כלשהי בתוך טקסט בצורה מפורשת (כקבוע), לדוגמה: re.match(r'from\s+', 'From amk Thu May 14 19:12:10 1998 ) מנסה לחפש את המחרוזת משמאל בהתחלת המחרוזת מימין. (s\ זה סימן לסוף מילה - נדבר על זה בהמשך). כדי להשתמש בתבנית של re כמשתנה, עלינו לבצע מה שנקרא קומפילציה של הביטוי pattern = re.compile( abc ) text = Ha HaHa matches = re.findall(pattern, text) matches = re.finditer(pattern, text) - match מחזירה או אובייקט או.None בודק רק מהתחלת המחרוזת. (לא שימושי) search מחזירה אובייקט מסוג match (עבור המופע הראשון משמאל שתואם). findall מחזיר רשימה finditer מחזיר אובייקט שהוא איטרטור ומתוכו אפשר לקבל אינפורמציה. למשל את הפוזיציות של מה שהתאים על ידי המתודה:( span( את התת מחרוזות התואמת על ידי group() תוים שזקוקים ל הגנה בתוך ביטוי רגולרי (מיוחדים) הם: ( ) \ [ ] { }? + * $ ^. ההגנה נחוצה על מנת שיאבדו את תפקידם המיוחד והיא מורכבת מציון התו \ slash) ( back לפני התו המיוחד - ניראה זאת בהמשך.

. התו נקודה תואם כל תו מלבד תו שורה חדשה. d\ - כל ספרה D\ - כל דבר שאינו סיפרה. (a-z A-Z 0-9 (_ אותיות קטנות או גדולות או סיפרה או קו תחתון - w\ w\ כל דבר שאינו W\ t\ או tab וגם n\ כל תו שהוא ניראה כרווח (גם התו של שורה חדשה s\ s\ כל מה שאינו S\ התוים המיוחדים הבאים משמשים כעזר לגידור תוים אחרים. דוגמה: example1 Ha HaHa למשל אם נתונה המחרוזת:.(word boundary) נועד כדי לגדר מילה b\ מדוע קיבלנו רק שתי התאמות ולא שלוש? pattern = \bha התו b\ מציין גבול מילה לפני המילה, כלומר גם התחלת המחרוזת וגם תו הרווח הם כאלה. ה- Ha השלישי אינו כזה. B\ כל מה שאינו בגידור של מילה. זה למשל יתן לנו את ה- Ha השלישי בלבד. דוגמה: example2 ^ - נועד לגדר משהו בתחילת המחרוזת $ - נועד לגדר בסוף המחרוזת. דוגמה: example3 חיפוש תבניות כלליות נניח שאנחנו רוצים לחפש משהו שנראה כמו מספרי טלפון מהסוג: 054-8381185 או מהסוג: 050.4040398 (כלומר מפריד של נקודה או מקף בין קידומת ומיספר) ננסה להשתמש במה שמציין סיפרה: d\ למשל: \d\d\d.\d\d\d\d\d\d\d שימו לב ששמנו את התו המיוחד נקודה בין השלוש הראשונות והשבע הבאות (זה נועד להכיל את המקף או הנקודה, כיוון שנקודה משמע כל תו כמעט)

מחלקות תוים אנו עלולים לקבל יותר מידי. כדי לציין שרק מקף או נקודה רצויים נוכל להשתמש במה שניקרא: מחלקת תוים class) ( charcter set שמצויינת על ידי סוגריים מרובעים. שימו לב שהסוגריים המרובעים מציינים רק תו אחד והבחירה היא או בין התוים שבתוכם. עוד דוגמה אפשר כך לבדוק תקינות של מספר טלפון. עבור סלולרי, הקידומת היא 05 בתוך מחלקת תוים התו מקף מקבל משמעות מיוחדת. הוא נועד לומר ממשהו ועד משהו. כך אפשר לשפר עוד יותר את הדיוק של בדיקת הטלפון. בואו נניח שכל הסלולריים בעלי קידומות 055,054,053,052,051,050 ניתן לסיפרה הימנית לרוץ מ- 0 ועד 5) [a-z] [A-G] [a-za-z] באותה מידה אפשר להשתמש בטווח אותיות: שלילת רישיון לתו example4 גם התו ^ (caret) מקבל משמעות מיוחדת בתוך מחלקת תוים. פירושו שלילת התוים, כלומר כל מה שהוא לא התוים שבאים אחריו. למשל [^abc] פירושו כל מה שאינו a, אינו b ואינו c. למשל זיהוי הזמנות. חייבת להתחיל בסיפרה 8 7, או 9, וחייבת להיות בעלת 4 ספרות. מצייני כמויות {4} {1,3}?,*,+ + אחד או יותר * אפס או יותר? אפס או אחד {n} מספר פעמים שבסוגריים m ל- n כמספר בין {n,m}

אפשר למשל לקצר את הבדיקה של מספר הטלפון כמו בדוגמה הראשונה של.example5 נעבור לדוגמה קצת יותר חכמה. נניח שרוצים להיות מסוגלים לתפוס כותרת של מכתב שמופנית לאדם והאפשרויות הן: Mr. Jones Mr Eduards Ms Smith Mr. T Mrs. Robinson קודם ננסה לתפוס את,Mr. Mr והשם משפחה. לאחר מכן ננסה גם את ה - Ms וה- Mrs. לשם כך נלמד מושג נוסף שנקרא קבוצה והיא מוגדרת בין סוגריים רגילות. בתוך הסוגריים אפשר להשתמש בסימן או אחרי שהצלחנו לתפוס את כל הכותרות (עוד נחזור לנושא של קבוצות ביתר פירוט). כתובות email בואו ננסה לכתוב ביטוי שיתפוס את 3 הכתובות הבאות: js3104@nyu.edu freddy.krooger@yahoo.net aaron@gmai.com example6 ישנם באינטרנט הרבה ביטויים שמנסים להכיל כמה שיותר אפשרויות עבור כתובת mail ולקרוא אחד כזה יותר קשה מאשר לכתוב בדרך כלל. דוגמה אינטרנטית עבור כתובת mail r [a-za-z0-9-.]+@[a-za-z0-9]+\.[a-za-z0-9-.]+ שימו לב שלא צריך הגנה על הנקודה בתוך הסוגריים המרובעים, אבל צריך מחוצה להם.

חלוקה לקבוצות בעזרת סוגריים example7 בדוגמה הבאה ברצוננו לתפוס כתובות אינטרנט מכל מיני סוגים, למשל: https://www.google.com http://yahoo.com https://youtube.com https://www.nasa.gov רואים שלעיתים יש http ולעיתים https בתור פרוטוקול. נעשה את ה- s אופציונלי. בשם הדוממין לעיתים יש www ולעיתים לא. גם רמת הדומיין הגבוהה לעיתים.com ולעיתים.gov ניכתוב ביטוי שלא רק יבצע בדיקת התאמה, אלא גם יתפוס קבוצות של סוגריים עגולים. לשם הבנת התוצאה נשתמש במתודה group של אובייקט.match קבוצת האפס היא תמיד כל מה שתואם לביטוי כולו. pattern = re.compile('https?://(www\.)?(\w+)(\.\w+)') מלבד קבוצת האפס יש לנו כאן את קבוצת הרמה הנמוכה של הדומיין, שם הדומיין וקבוצה עבור הרמה הגבוהה של הדומיין. כאשר משתמשים בקבוצות, השימוש ב - findall יותר מורכב, כי הוא מחזיר את כל הקבוצות שתאמו. example8 יחד עם הקבוצות ניתן גם להשתמש בשיטה שניקראת התיחסות לאחור back) (reference שמאפשרת לנו באותה נשימה של יצירת הקבוצות, גם להשתמש בהן. ניראה זאת בעזרת דוגמה שגם משלבת החלפה של המחרוזות שתאמו בקבוצה או קבוצות שהתקבלו. הקבוצות מצויינות על פי סדר יצירתן ניתנות להתייחסות כ: 1\ \3 \2, וכדומה. התנהגות חמדנית - greedy r.+ r English Hello, Spanish Hola נניח שהביטוי הרגולרי הוא: והמחרוזת הניבדקת היא: סביר לצפות שהביטוי יתאים ל- Hello ול- Hola אבל בפועל הוא יתאים ל: Hola Hello, Spanish הסיבה היא שהאופרטור + הוא חמדן ומנסה לאכול כמה שיותר תוים ולכן הוא לא עוצר בגרשיים הראשונים או השניים, אלא ממשיך עד האחרונים.

נוכל לשנות את התנהגותו על ידי תוספת של סימן שאלה: r.+? שינוי זה יגרום לו לבצע את מה שחשבנו תחילה, התאמה של Hello ושל- Hola דגלים זהו פרמטר נוסף בסוגריים. למשל אם רוצים להתעלם מאותיות גדולות/קטנות, מוסיפים דגל של re.i ישנו דגל שמאפשר להשתמש ב- ^ ו- $ עבור כל שורה בטקסט מרובה שורות על כל שורה במקום רק על התחלה וסיום מחרוזת. ישנם עוד דגלים שלעיתים ניתן להיעזר בהם. תירגול של ביטויים רגולריים.1 נתונה מחרוזת, יש לכתוב פונקציה בפייתון שתחזיר אמת אם יש במחרוזת רק ספרות בינריות, ושקר אחרת. הבדיקה תיעשה בעזרת ביטוי רגולרי מתאים..2 נתונה מחרוזת ובה ישנם מספרים בני 3 ספרות. יש לכתוב פונקציה שתיעזר בביטוי רגולרי ותחזיר ברשימה את כל המספרים הללו. הם חייבים להיות מוקפים ברווחים לפני ואחרי.