דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. בעקבות המדריך על regex

בעקבות המדריך על regex

מתוזמן נעוץ נעול הועבר תכנות
6 פוסטים 2 כותבים 699 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    אהרן
    כתב ב נערך לאחרונה על ידי
    #1

    היה לי לפני תקופה אתגר מעניין
    https://regex101.com/r/i6WDbA/5

    או תריצו בקונסול

    var s = "Ahron"
    var r = /^(Ahr)(o?)([^n])/
    console.log( s.match(r) )
    

    להפתעתי גליתי שהתשובה חיובית
    שבגלל שבקבוצה השלישית (מתוך 4) הוא החזיר תו ריק בשביל שהתו אחריו לא יהיה n!!

    הפתרון הוא לשלול את o שוב, כך?

    var s = "Ahron"
    var r = /^(Ahr)(o?)([^on])/
    console.log( s.match(r) )
    

    ככל שאני זוכר יש הגדרה ברג'קס שחוסך א"ז, אבל הוא לא נתמ ב-js.

    תגובה 1 תגובה אחרונה
    1
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      זה באמת שאלה מצויינת.
      נראה לי שבזמנו שיתפת אותי, ןלמרות זאת, גם עכשיו לקח לי זמן להבין איך זה ייתכן.
      בעצם אנחנו אומרים לו תמצא Ahr שאחריו ייתכן o, ואחרי כן אות כל שהיא מלבד n.
      הרגקס לא מצליח למצוא התאמה במסלול של היתכנות הo, אז הוא בוחר למצוא את ההתאמה במקרה שאין o! ואז הo משמש עלה תאנה לתנאי הבא: אות כל שהיא שאיננה n = o...
      בעצם הבעיה פה זה איך להכריח את הרגקס לכלול את הo במידה והיא קיימת.
      הפיתרון של כלילת הo בשלילת הn, הוא לא מלא: לפעמים תסכים גם לo כאות אחרונה.
      הבעיה פתירה ע"י חלוקת הרגקס לשתי תרחישים:

      Ahro[^n]|Ahr[^on]
      

      אבל באמת זו עקיפה במידה מסוימת והבעיה עדיין מאתגרת.
      .

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      2
      • א מנותק
        א מנותק
        אהרן
        כתב ב נערך לאחרונה על ידי
        #3

        תעזור לי לחשוב
        הפתרון שלך יעזור למקרה ואני צריך את o (אם ישנו) בקבוצה נפרדת?

        תגובה 1 תגובה אחרונה
        0
        • dovidD מחובר
          dovidD מחובר
          dovid ניהול
          כתב ב נערך לאחרונה על ידי
          #4
          (Ahr)(:?(o)[^n]|[^on])
          

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          1
          • א מנותק
            א מנותק
            אהרן
            כתב ב נערך לאחרונה על ידי
            #5

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

            ככל הנראה ברוב המוחלט של המקרים הבאג דווקא היווה יתרון (יחי js 😛 ), כי מה שהיה חשוב זה אם יש בסוף n וזה משליך על האם להשאיר או למחוק את o, זה חסך חיפושים לתרחישים שונים.

            --
            אגב, לא סיפרת לנו מהו הדגל שמונע א"ז (לא ב-js).
            אני אישית אשמח להסברים על הפונקציות השונות שנמצאים במופע רג'קס.
            תודה!

            תגובה 1 תגובה אחרונה
            0
            • dovidD מחובר
              dovidD מחובר
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #6

              לא ידוע לי על דגל שיעזור.

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              1

              בא תתחבר לדף היומי!
              • התחברות

              • אין לך חשבון עדיין? הרשמה

              • התחברו או הירשמו כדי לחפש.
              • פוסט ראשון
                פוסט אחרון
              0
              • דף הבית
              • קטגוריות
              • פוסטים אחרונים
              • משתמשים
              • חיפוש
              • חוקי הפורום