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

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

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

שאלה. איך לכתוב ביטוי רג'קס? ואיך למחוק ברג'קס מילים שלמות?

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

    אני רוצה להסיר מתוכן של משתנה כל מילה שמכילה ספרות, לדוגמא יש לי משפט כזה:

    "קניתי את העגבניות זה עלה לי 2.5 ש"ח"
    אז יישאר,
    "קניתי את העגבניות זה עלה לי ש"ח"
    שגם הנקודה תעלם.

    רפאלר dovidD 2 תגובות תגובה אחרונה
    0
    • רפאלר מנותק
      רפאלר מנותק
      רפאל
      השיב לענן ב נערך לאחרונה על ידי רפאל
      #2
      str.replace(/\S*\d\S*/g, '')
      

      התווים המשתתפים:

      • הביטוי עצמו עטוף בקו נטוי כדי לציין שמדובר באוביקט מסוג Regex
      • S\ תואם לכל תו אשר אינו Whitespace (לדוגמא שורה חדשה \ טאב \ רווח)
      • * תואם לתו הקודם 0 פעמים או יותר (התו מציין את כמות ההופעות הדרושה של התו הקודם)
      • d\ תואם לתווים 0-9
      • g לאחר סיום הביטוי מגיע תורם של ה"דגלים" כדי להחליט על האופן הרצוי בו יתבצע התהליך, לדוגמא במקרה זה אנו עושים שימוש בg\ כך שהתהליך יתבצע עבור כל המילים, ולא יושלם אחר מציאת ההתאמה הראשונה

      אופן הפעולה של הביטוי:

      מצא מילה המתחילה בכל אחד מהתווים אשר אינם Whitespace אפס או יותר פעמים, מכילה לפחות ספרה אחת ומסתיימת בכל אחד מהתווים אשר אינם Whitespace אפס או יותר פעמים.

      ענןע צדיק תמיםצ חגיח 3 תגובות תגובה אחרונה
      7
      • ענןע מנותק
        ענןע מנותק
        ענן
        השיב לרפאל ב נערך לאחרונה על ידי ענן
        #3

        @רפאל תודה, אשמח רק להסבר על הג'יבריש הזה

        /\S*\d+\S*/g
        

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

        ב צדיק תמיםצ 2 תגובות תגובה אחרונה
        0
        • ב מנותק
          ב מנותק
          ב.ל
          השיב לענן ב נערך לאחרונה על ידי
          #4

          @ענן
          https://tchumim.com/topic/1463/regex-ביטויים-רגולריים?_=1650924499852

          ליצירת קשר - baruchlamdan@gmail.com

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

            @ב-ל סגור לי

            ב תגובה 1 תגובה אחרונה
            0
            • ב מנותק
              ב מנותק
              ב.ל
              השיב לענן ב נערך לאחרונה על ידי
              #6

              @ענן אמר בהסרת מילים שלמות בגאווה סקריפט עם רג'קס:

              @ב-ל סגור לי

              https://dev-blog.co.il/regex-episode-1
              זה אותו פוסט

              ליצירת קשר - baruchlamdan@gmail.com

              תגובה 1 תגובה אחרונה
              3
              • צדיק תמיםצ מנותק
                צדיק תמיםצ מנותק
                צדיק תמים
                השיב לרפאל ב נערך לאחרונה על ידי צדיק תמים
                #7

                @רפאל איך d\ לוכד את הנקודה? הרי היא לא 0-9
                גם בפני עצמו זה לא לוכד את הנקודה. מה הקסם שבביטוי שלך?
                אגב בצורה הזאת, במשפט ש @ענן הביא לדוגמה יווצר רווח כפול מיותר:
                20eb93da-4f6e-47af-a36f-e599e1902a6f-image.png

                רפאלר תגובה 1 תגובה אחרונה
                1
                • צדיק תמיםצ מנותק
                  צדיק תמיםצ מנותק
                  צדיק תמים
                  השיב לענן ב נערך לאחרונה על ידי צדיק תמים
                  #8

                  @ענן אם תכניס את הרג'קס באתר https://regex101.com, יופיע לך בצד ימין הסבר (באנגלית) על כל אחד מהביטויים ברג'קס (על כל הסימנים ה"מוזרים", למעט לדוגמה תו פשוט כמו א, אבל [א-ד] כן יופיע הסבר), בריבוע הזה:
                  2b385ab8-59d7-41a8-ae5d-a037cae32f08-image.png

                  תגובה 1 תגובה אחרונה
                  2
                  • רפאלר מנותק
                    רפאלר מנותק
                    רפאל
                    השיב לצדיק תמים ב נערך לאחרונה על ידי רפאל
                    #9

                    @צדיק-תמים המטא-תו S\ הפותח יתאים לנקודה המופיעה לפני המספר\ים, והמטא תו הסוגר יתאים לנקודה המופיעה לאחר המספר\ים.

                    @צדיק-תמים אמר בהסרת מילים שלמות בגאווה סקריפט עם רג'קס:

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

                    ניתן לבחור את הרווח המופיע בסיום המילה:

                    str.replace(/\S*\d+\S*\s?/g, '')
                    
                    תגובה 1 תגובה אחרונה
                    4
                    • חגיח מנותק
                      חגיח מנותק
                      חגי
                      השיב לרפאל ב נערך לאחרונה על ידי חגי
                      #10

                      @רפאל אמר בהסרת מילים שלמות בגאווה סקריפט עם רג'קס:

                      \S*\d+\S*

                      https://regex101.com/r/bQOw41/1

                      אולי במקום להתאים את כל התווים של לא whitespace, צריך לעשות משהו כזה?

                      \d+(\.(?=\d))?\d*
                      

                      הרי הנקודה זה התו היחידי שאמור להפוך את זה למספר חוקי, ורק אם הוא מוקף בספרות משני צדדיו.
                      הנה דוגמה
                      https://regex101.com/r/GKe88K/1

                      רפאלר תגובה 1 תגובה אחרונה
                      1
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        השיב לענן ב נערך לאחרונה על ידי dovid
                        #11

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

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

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

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

                        צדיק תמיםצ ענןע 2 תגובות תגובה אחרונה
                        4
                        • צדיק תמיםצ מנותק
                          צדיק תמיםצ מנותק
                          צדיק תמים
                          השיב לdovid ב נערך לאחרונה על ידי צדיק תמים
                          #12
                          פוסט זה נמחק!
                          תגובה 1 תגובה אחרונה
                          1
                          • רפאלר מנותק
                            רפאלר מנותק
                            רפאל
                            השיב לחגי ב נערך לאחרונה על ידי רפאל
                            #13

                            @חגי אם @ענן אכן מעוניין לבחור מילים המכילות נקודה (למעט שאר התווים) דבר שלא היה ברור בתוכן השאלה:

                            אני רוצה להסיר מתוכן של משתנה כל מילה שמכילה ספרות

                            ניתן לעשות שימוש בביטוי דלהלן:

                            \d+(\.\d+)?
                            
                            ענןע תגובה 1 תגובה אחרונה
                            1
                            • ענןע מנותק
                              ענןע מנותק
                              ענן
                              השיב לdovid ב נערך לאחרונה על ידי
                              #14

                              @dovid אני מתנצל, אבל זה דווקא היה ממש הפוך, המלאך @רפאל כתב לי מה לעשות במקרה הספציפי, אבל רציתי להבין מה זה הג'יבריש כדי שאוכל בפעם הבאה לעשות את זה לבד, אבל אתה צודק שבאמת מהצורה שבה שאלתי את זה אפשר להבין אחרת, אני התכוונתי שיפנו אותי (כמו שבאמת עשו, תודה!!) או יסבירו לי על הג'יברוש של הרג'קס הזה, הייתי צריך לכתוב שאני רוצה לדעת רג'קס ולא רק לדעת איך מוחקים מילה שלמה, סורי.

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

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

                                תודה על כל העזרה.

                                dovidD תגובה 1 תגובה אחרונה
                                1
                                • dovidD מנותק
                                  dovidD מנותק
                                  dovid ניהול
                                  השיב לענן ב נערך לאחרונה על ידי dovid
                                  #16

                                  @ענן מאה סליחות.

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

                                  בקשר ללימוד רג'קס, יש את הלינק שהביאו פה (שהוא מאמר שלי), ויש עוד הרבה באינטרנט. צריך לחפש "מדריך regex".

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

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

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

                                    @dovid אמר בשאלה. איך לכתוב ביטוי רג'קס? ואיך למחוק ברג'קס מילים שלמות?:

                                    בקשר לשאלה, אתה רוצה שיימחק גם F15, או מחשבים4 ?

                                    בהחלט.

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

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

                                    dovidD תגובה 1 תגובה אחרונה
                                    0
                                    • dovidD מנותק
                                      dovidD מנותק
                                      dovid ניהול
                                      השיב לענן ב נערך לאחרונה על ידי dovid
                                      #18

                                      @ענן אם ככהאז @רפאל הבין אותך נכון, והתשובה שלו השניה עם לכידת הרווח היא המתאימה.

                                      str.replace(/\S*\d+\S*\s?/g, '')

                                      אני מעדכן אותה כדי לכלול גם לועזית כל שהיא בתוך מילה:

                                      str.replace(/\S*[\dA-Za-z]\S*\s?/g, '')
                                      

                                      הסבר:
                                      [...] משמעותו תו מאלה שמופיע בסוגריים.
                                      \d זה ספרה, כלומר 0-9, וA-Za-z זה טווח התווים האנגליים.

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

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

                                      י תגובה 1 תגובה אחרונה
                                      3
                                      • י מנותק
                                        י מנותק
                                        יוסף בן שמעון
                                        השיב לdovid ב נערך לאחרונה על ידי
                                        #19

                                        @dovid אמר בשאלה. איך לכתוב ביטוי רג'קס? ואיך למחוק ברג'קס מילים שלמות?:

                                        A-Za-z זה טווח התווים האנגליים.

                                        בפשטות מספיק A-z
                                        זה טווח היוניקוד

                                        dovidD תגובה 1 תגובה אחרונה
                                        0
                                        • dovidD מנותק
                                          dovidD מנותק
                                          dovid ניהול
                                          השיב ליוסף בן שמעון ב נערך לאחרונה על ידי dovid
                                          #20

                                          @יוסף-בן-שמעון

                                          @dovid אמר ברג'קס - התו "_":

                                          @צדיק-תמים A-z הכוונה מתו A עד תו z בסדר האותיות של הASCII
                                          בין הZ עד הa יש כמה וכמה סימנים. אני באמת אף פעם לא שמתי לב לכך, וכעת אני מבין למה טורחים לכתוב ככה
                                          [A-Za-z]

                                          התווים שA-z כולל בלי לשים לב:

                                          91 - [
                                          92 - \
                                          93 - ]
                                          94 - ^
                                          95 - _
                                          96 - `

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

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

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

                                          תגובה 1 תגובה אחרונה
                                          6
                                          • dovidD dovid העביר נושא זה מ-תכנות ב-

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

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

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