רג'קס להסרת גרשיים מטקסט מלבד ר"ת
-
אני רוצה להסיר גרשיים (") מטקסט מסויים, אבל רק כשהגרשיים בודדות או נמצאות בתחילת או בסוף מילה, אבל גרשיים של ר"ת, באמצע מילה, אני רוצה להשאיר
ניסיתי,
const text = '"חבר" חב"ר "שלום"'; const removeGershiimAll = text.replace(/"|>|</g, ''); const removeGershiim = text.replace(/\b"|"|\b/g, '');כמובן שהראשון מסיר את הכל, אבל הבעיה שגם השני..
אני בעצם רוצה שהתוצאה של removeGershiim תהיה
חבר חב"ר שלום -
אני רוצה להסיר גרשיים (") מטקסט מסויים, אבל רק כשהגרשיים בודדות או נמצאות בתחילת או בסוף מילה, אבל גרשיים של ר"ת, באמצע מילה, אני רוצה להשאיר
ניסיתי,
const text = '"חבר" חב"ר "שלום"'; const removeGershiimAll = text.replace(/"|>|</g, ''); const removeGershiim = text.replace(/\b"|"|\b/g, '');כמובן שהראשון מסיר את הכל, אבל הבעיה שגם השני..
אני בעצם רוצה שהתוצאה של removeGershiim תהיה
חבר חב"ר שלום -
אני רוצה להסיר גרשיים (") מטקסט מסויים, אבל רק כשהגרשיים בודדות או נמצאות בתחילת או בסוף מילה, אבל גרשיים של ר"ת, באמצע מילה, אני רוצה להשאיר
ניסיתי,
const text = '"חבר" חב"ר "שלום"'; const removeGershiimAll = text.replace(/"|>|</g, ''); const removeGershiim = text.replace(/\b"|"|\b/g, '');כמובן שהראשון מסיר את הכל, אבל הבעיה שגם השני..
אני בעצם רוצה שהתוצאה של removeGershiim תהיה
חבר חב"ר שלום/(?<=[א-ת])"(?![א-ת])|(?<![א-ת])"(?=[א-ת])|(?<=\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 -
אני רוצה להסיר גרשיים (") מטקסט מסויים, אבל רק כשהגרשיים בודדות או נמצאות בתחילת או בסוף מילה, אבל גרשיים של ר"ת, באמצע מילה, אני רוצה להשאיר
ניסיתי,
const text = '"חבר" חב"ר "שלום"'; const removeGershiimAll = text.replace(/"|>|</g, ''); const removeGershiim = text.replace(/\b"|"|\b/g, '');כמובן שהראשון מסיר את הכל, אבל הבעיה שגם השני..
אני בעצם רוצה שהתוצאה של removeGershiim תהיה
חבר חב"ר שלוםאינני בקי ברגקס של JS
אבל ב-C# הייתי עושה כך:^"|"$|" | "ההחלפה קצת יותר מורכבת כי אתה צריך להיזהר לא להחליף את הרווח. ולכן ייתכן שה-lookahead וה-lookbehind עדיף במקרה הזה כמו שצדיק תמים כתב
https://regex101.com/r/CajTc0/1
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות