אחד המתכנתים של StackExchange נתן הרצאה של כ-20 דקות, על נסיגה קטסטרופלית של ביטויים רגולריים.
האמת היא שלא כ”כ זכרתי שמנועי ביטויים רגולריים מבצעים נסיגות במקרי חוסר הצלחה, אבל גם בלי זה, המתכנת (ששם משפחתו קצת מסובך, ומתברר שלא רק אני מסתבכת איתו, אבל בלי ספוילרים 😉 ) מספר את הסיפור בצורה מעניינת ואפילו מותחת (למי שתעלומות קוד הם משהו מותח עבורו, כן?), כך ששווה לצפות בהרצאה שלו הן מצד הידע והן מצד העניין. וגם – כולה 20 דקות.
יש תקציר? וידאו באנגלית של 20 דקות על ביטויים רגולריים זה יותר מדי בשבילי ☺
בעיקרון זה רק סיפור על משהו שקרה לו עם ביטויים רגולריים, אז חבל להרוס את זה עם תקציר משמים.
אבל פטור בלא-כלום אי-אפשר, אז אומר בקצרה שבגלל תו אחד בטקסט, התוכנה לא הצליחה למצוא את הביטוי הרגולרי שהוא הגדיר לה. אבל במקום לסיים תוך שניות ספורות ולהודיע על כשלון, היא התחילה ללכת אחורה בטקסט ולנסות לפרש אחרת את התוים שהיא פגשה (למשל לפרש ספרות כאותיות), כדי לנסות בכל זאת למצוא את הביטוי הרגולרי. הנסיגה הזו (backtracking) גרמה לתוכנה לעבוד פרק זמן נכבד עד הודעת הכשלון. בסוף הוא גם מסביר איך ניתן היה למנוע את ה-backtracking, באמצעות דיוק רב יותר בהגדרת הביטוי הרגולרי.
אני מקווה שבכל זאת תצפה בזה, כי זה סיפור מעניין, וגם, לא צריך להבין הרבה אנגלית – בעיקר צריך להבין את הקוד 🙂
תודה רבה על התקציר. וגם על הבלוג המעניין.
בכיף, ותודה!