דילוג לתוכן המרכזי
מודול 7 · שיעור 4 מתוך 428/32 בקורס~10 min
שיעורי מודול (4/4)

פיצול עם regex

String.prototype.split(separator) מקבל לא רק מחרוזת קבועה אלא גם רגקס כמפריד. זה הופך אותו לכלי רב עוצמה ליצירת אסימונים טקסט מובנה.

JS
'uno, due,tre  quattro'.split(/[,\s]+/);
// ["uno", "due", "tre", "quattro"]

הביטוי הרגולרי /[,\s]+/ תואם "אחד או יותר של פסיק או רווח לבן": פיצול מתפצלים על כל תוחם מורכב.

מקרים אופייניים

  • CSV מתירני: text.split(/\s*,\s*/) לטיפול ברווחים סביב פסיקים.
  • אסימון נאיבי: text.split(/\s+/) לחילוץ מילים.
  • שמור על המפריד: אם הביטוי הרגולרי מכיל קבוצות לכידה, ה- תוכן הקבוצות כלול במערך התוצאות.
JS
'a=1; b=2; c=3'.split(/(;)\s*/);
// ["a=1", ";", "b=2", ";", "c=3"]

ללא הקבוצה () הנקודה-פסיק ייעלם. עם (;) אתה שומר אותו בתוצאה.

שימור מפרידים בפעולות מפוצלות

אם תציב מפרידים מפוצלים בתוך סוגריים לכידה, הפלט של String.prototype.split יכלול את המפרידים עצמם כאלמנטים במערך הסופי, במקום להשליך אותם.

נסה את זה

פעילות גופנית#regex.m7.l4.e1
ניסיונות: 0טוען...

מצא כל מפריד CSV מתירני: פסיק עם רווחים אופציונליים סביבו. בדרך זו אתה יכול להשתמש בו בפיצול כדי לסמן את הרשימה.

טוען עורך...
הצג רמז

השתמש ב-\\s* לפני ואחרי הפסיק כדי לקלוט רווחים אופציונליים.

הפתרון זמין לאחר 3 ניסיונות

סקירת התרגיל

פעילות גופנית#regex.m7.l4.e2
ניסיונות: 0טוען...

מצא כל מפריד 'רווחים או נקודה-פסיק' (אחד או יותר). פיצול זה יהפוך את הטקסט למילים.

טוען עורך...
הצג רמז

שלב \\s ו-; במחלקה [\\s;] עם מכמת +.

הפתרון זמין לאחר 3 ניסיונות

אתגר נוסף

פעילות גופנית#regex.m7.l4.e3
ניסיונות: 0טוען...

Write a regex to use in a split that separates numbers while keeping math operators `+`, `-`, `*`, `/` as elements of the array.

טוען עורך...
הצג רמז

Enclose the math operators character class in capture parentheses to preserve them in the split array.

הפתרון זמין לאחר 3 ניסיונות