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

נכס Unicode בורח

השיעורים \w, \d, \s ב-ASCII לא מספיקים לאיטלקית, צרפתית, יוונית או טקסט אמוג'י. JavaScript מודרני (עם הדגל u -- Unicode) מציע בריחות מנכסים \p{...}: מחלקות סמנטיות המבוססות על Unicode תכונות של תווים.

Code
Pattern: \p{L}+        (with flag u)
Sample:  Ciao caffe' \u00fcber \u4e16\u754c
         ^^^^ ^^^^^^^ ^^^^ ^^^^

\p{L} = "כל אות (Unicode)": כולל אותיות מודגשות, סינית אידיאוגרמות, קיריליות, יווניות\u2026 הכל. הנפוצים שבהם:

  • \p{L} -- אות (מכל אלפבית).
  • \p{N} -- מספר (ספרות בערבית, רומית, הודית\u2026).
  • \p{P} -- סימני פיסוק.
  • \p{S} -- סמל (מתמטי, מטבע, אמוג'י\u2026).
  • \p{Z} -- רווח/מפריד.
  • \p{Script=Latin} -- במיוחד האלפבית הלטיני.
  • \p{Script=Greek} -- האלפבית היווני. וְכֵן הָלְאָה.

והגרסאות שלילת \P{L}, \P{N}, \u2026

הבדל עם \w ו\d

Code
\\w matches [A-Za-z0-9_]              -- ASCII only, no "caffe'"
\\p{L}\\p{N}_  with flag u            -- includes accented characters

עבור מנתח חזק של טקסט איטלקי, העדיף \p{L} על פני \w: citta', perche', andro' תואמים בצורה נכונה כמילים.

מאפייני Unicode ותאימות דפדפן

מאפייני Unicode כמו \\p{L} (אותיות) או \\p{Script=Latin} מרחיבים את השיעורים לאותיות בינלאומיות. ב-JavaScript, הם בהחלט דורשים את הדגל u (או v), אחרת המנוע זורק שגיאת תחביר.

נסה את זה

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

מצא כל מילה, כולל אלה עם מבטאים (citta', perche', e' \u2026). השתמש במאפיין escape \\p{L} עם הדגל u.

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

החלף את \\w+ ב-\\p{L}+ והוסף את דגל ה-u (בנוסף ל-g).

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

סקירת התרגיל

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

מצא כל סמל Unicode (מטבעות, מתמטיקה, אמוג'י) בטקסט, למעט אותיות וספרות.

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

\\p{S} תואם לקטגוריית הסמלים של Unicode. זכור את דגל ה-u.

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

אתגר נוסף

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

מצא את כל המילים המורכבות מאותיות אלפבית קיריליות באמצעות `\p{Script=Cyrillic}`.

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

השתמש ב-\\p{Script=Cyrillic} עם הכימת + ודגל u.

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