Ana içeriğe geç
Modül 5 · Ders 4 ders 4Kurstaki 20/32~12 min
Modül dersleri (4/4)

Unicode özelliği kaçar

ASCII'deki \w, \d, \s sınıfları İtalyanca, Fransızca, Yunanca için yeterli değil veya emoji metni. Modern JavaScript (u bayrağıyla - Unicode) teklifleri özellik kaçışları \p{...}: Unicode'a dayalı anlamsal sınıflar karakterlerin özellikleri.

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

\p{L} = "herhangi bir Harf (Unicode)": vurgulu harfleri içerir, Çince ideogramlar, Kiril, Yunanca\u2026 her şey. En yaygın olanları:

  • \p{L} -- harf (herhangi bir alfabenin).
  • \p{N} -- sayı (Arapça rakamlar, Roma, Hint\u2026).
  • \p{P} -- noktalama işareti.
  • \p{S} -- sembol (matematik, para birimi, emoji\u2026).
  • \p{Z} -- boşluk/ayırıcı.
  • \p{Script=Latin} -- özellikle Latin alfabesi.
  • \p{Script=Greek} -- Yunan alfabesi. Ve benzeri.

Ve olumsuz sürümler \P{L}, \P{N}, \u2026

\w ve \d ile fark

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

İtalyanca metnin sağlam bir ayrıştırıcısı için \p{L} yerine \w'yı tercih edin: citta', perche', andro' kelime olarak doğru şekilde eşleşiyor.

Unicode özellikleri ve tarayıcı uyumluluğu

\\p{L} (Harfler) veya \\p{Script=Latin} gibi Unicode özellikleri, sınıfları uluslararası alfabelere genişletir. JavaScript'te kesinlikle u (veya v) bayrağını gerektirirler, aksi takdirde motor bir sözdizimi hatası atar.

Deneyin

Egzersiz#regex.m5.l4.e1
Denemeler: 0Yükleniyor…

Aksanlı olanlar da dahil olmak üzere her kelimeyi bulun (citta', perche', e' \u2026). u bayrağıyla kaçış \\p{L} özelliğini kullanın.

Düzenleyici yükleniyor…
İpucu göster

\\w+'yı \\p{L}+ ile değiştirin ve u bayrağını ekleyin (g'ye ek olarak).

3 denemeden sonra çözüm mevcut

Alıştırmayı gözden geçirin

Egzersiz#regex.m5.l4.e2
Denemeler: 0Yükleniyor…

Harfler ve rakamlar hariç, metindeki tüm Unicode sembollerini (para birimleri, matematik, emoji) bulun.

Düzenleyici yükleniyor…
İpucu göster

\\p{S}, Unicode'un Sembol kategorisiyle eşleşir. U bayrağını hatırla.

3 denemeden sonra çözüm mevcut

Ek zorluk

Egzersiz#regex.m5.l4.e3
Denemeler: 0Yükleniyor…

`\p{Script=Kiril}` kullanarak Kiril alfabesi harflerinden oluşan tüm kelimeleri bulun.

Düzenleyici yükleniyor…
İpucu göster

+ niceleyici ve u işaretiyle \\p{Script=Cyrillic} kullanın.

3 denemeden sonra çözüm mevcut