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

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

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

רג'קס להסרת גרשיים מטקסט מלבד ר"ת

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

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

    ניסיתי,

    const text = '"חבר" חב"ר "שלום"';
    
    const removeGershiimAll = text.replace(/"|>|</g, '');
    
    const removeGershiim = text.replace(/\b"|"|\b/g, '');
    

    כמובן שהראשון מסיר את הכל, אבל הבעיה שגם השני..

    אני בעצם רוצה שהתוצאה של removeGershiim תהיה חבר חב"ר שלום

    ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
    הלינקיה שלי https://abaye.co/link.html

    צדיק תמיםצ pcinfogmachP 3 תגובות תגובה אחרונה
    0
    • אבייא אביי

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

      ניסיתי,

      const text = '"חבר" חב"ר "שלום"';
      
      const removeGershiimAll = text.replace(/"|>|</g, '');
      
      const removeGershiim = text.replace(/\b"|"|\b/g, '');
      

      כמובן שהראשון מסיר את הכל, אבל הבעיה שגם השני..

      אני בעצם רוצה שהתוצאה של removeGershiim תהיה חבר חב"ר שלום

      צדיק תמיםצ מנותק
      צדיק תמיםצ מנותק
      צדיק תמים
      כתב ב נערך לאחרונה על ידי
      #2

      @אביי
      א. השני מכיל |"| שזה אומר "או מירכאות" (בלי שום החרגה), ב. אתה משתמש ב\b שלא עובד על אותיות בעברית אלא רק על ASCII

      Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
      טיפים

      תגובה 1 תגובה אחרונה
      5
      • אבייא אביי

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

        ניסיתי,

        const text = '"חבר" חב"ר "שלום"';
        
        const removeGershiimAll = text.replace(/"|>|</g, '');
        
        const removeGershiim = text.replace(/\b"|"|\b/g, '');
        

        כמובן שהראשון מסיר את הכל, אבל הבעיה שגם השני..

        אני בעצם רוצה שהתוצאה של removeGershiim תהיה חבר חב"ר שלום

        צדיק תמיםצ מנותק
        צדיק תמיםצ מנותק
        צדיק תמים
        כתב ב נערך לאחרונה על ידי צדיק תמים
        #3

        @אביי

        /(?<=[א-ת])"(?![א-ת])|(?<![א-ת])"(?=[א-ת])|(?<=\s)"(?=\s)/gs
        

        הדגמה

        הביטוי הזה מחפש:

        • יש לִפְנֵי (positive lookbehind) אות בעברית, מירכאות, אין אַחֲרֵי (negative lookahead) אות בעברית

        או

        • אין לִפְנֵי (negative lookbehind) אות בעברית, מירכאות, יש אַחֲרֵי (positive lookahead) אות בעברית

        או

        • יש לִפְנֵי (positive lookbehind) רווח, מירכאות, יש אַחֲרֵי (positive lookahead) רווח

        מראי מקומות:
        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Lookbehind_assertion
        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Lookahead_assertion

        Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
        טיפים

        תגובה 1 תגובה אחרונה
        6
        • אבייא אביי

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

          ניסיתי,

          const text = '"חבר" חב"ר "שלום"';
          
          const removeGershiimAll = text.replace(/"|>|</g, '');
          
          const removeGershiim = text.replace(/\b"|"|\b/g, '');
          

          כמובן שהראשון מסיר את הכל, אבל הבעיה שגם השני..

          אני בעצם רוצה שהתוצאה של removeGershiim תהיה חבר חב"ר שלום

          pcinfogmachP מנותק
          pcinfogmachP מנותק
          pcinfogmach
          כתב ב נערך לאחרונה על ידי pcinfogmach
          #4

          אינני בקי ברגקס של JS
          אבל ב-C# הייתי עושה כך:

          ^"|"$|" | "
          

          ההחלפה קצת יותר מורכבת כי אתה צריך להיזהר לא להחליף את הרווח. ולכן ייתכן שה-lookahead וה-lookbehind עדיף במקרה הזה כמו שצדיק תמים כתב
          https://regex101.com/r/CajTc0/1

          גמ"ח מידע מחשבים ואופיס

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

            כולם אמרו פה דברים נכונים, אבל אפשר גם ככה:

            text.replace(/(?:(\s|^)"|"(\s|$))/g, '$1$2');
            

            או:

            text.replace(/((\s|^)"|"(\s|$))/g, '$2$3');
            

            כלומר כמו ש@pcinfogmach רצה אבל עם לכידה של הרווח אם ישנו (משני הקבוצות האפשריות) והשארתו במחרוזת המוחלפת.

            • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
            • בכל נושא אפשר ליצור קשר dovid@tchumim.com
            תגובה 1 תגובה אחרונה
            2
            • dovidD מנותק
              dovidD מנותק
              dovid
              ניהול
              כתב ב נערך לאחרונה על ידי
              #6

              מצרף את תשובתו של GPT שהולכת בדרכו של @צדיק-תמים:

              text.replace(/(?<=\s|^)\"|\"(?=\s|$)/g, '');
              
              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
              תגובה 1 תגובה אחרונה
              1
              תגובה
              • תגובה כנושא
              התחברו כדי לפרסם תגובה
              • מהישן לחדש
              • מהחדש לישן
              • הכי הרבה הצבעות


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

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

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