मुख्य सामग्री पर जाएं
मॉड्यूल 5 · पाठ 4 का 4पाठ्यक्रम में 20/32~12 min
मॉड्यूल पाठ (4/4)

यूनिकोड संपत्ति बच जाती है

ASCII में कक्षाएँ \w, \d, \s इतालवी, फ़्रेंच, ग्रीक के लिए पर्याप्त नहीं हैं या इमोजी टेक्स्ट. आधुनिक जावास्क्रिप्ट (u ध्वज -- यूनिकोड के साथ) ऑफ़र करता है संपत्ति पलायन \p{...}: यूनिकोड पर आधारित सिमेंटिक कक्षाएं पात्रों के गुण.

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

\p{L} = "कोई भी अक्षर (यूनिकोड)": इसमें उच्चारण वाले अक्षर, चीनी शामिल हैं आइडियोग्राम, सिरिलिक, ग्रीक\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

इतालवी पाठ के एक मजबूत पार्सर के लिए, \w के बजाय \p{L} को प्राथमिकता दें: citta', perche', andro' शब्दों के रूप में सही ढंग से मेल खाते हैं।

यूनिकोड गुण और ब्राउज़र अनुकूलता

यूनिकोड गुण जैसे \\p{L} (अक्षर) या \\p{Script=Latin} कक्षाओं को अंतर्राष्ट्रीय वर्णमाला तक विस्तारित करते हैं। जावास्क्रिप्ट में, उन्हें सख्ती से u (या v) ध्वज की आवश्यकता होती है, अन्यथा इंजन एक सिंटैक्स त्रुटि फेंकता है।

इसे अजमाएं

व्यायाम#regex.m5.l4.e1
प्रयास: 0लोड हो रहा है...

प्रत्येक शब्द ढूंढें, जिसमें उच्चारण वाले शब्द भी शामिल हैं (citta', perche', e' \u2026)। ध्वज यू के साथ संपत्ति एस्केप \\p{L} का उपयोग करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

\\w+ को \\p{L}+ से बदलें और u ध्वज जोड़ें (g के अतिरिक्त)।

3 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम की समीक्षा करें

व्यायाम#regex.m5.l4.e2
प्रयास: 0लोड हो रहा है...

अक्षरों और अंकों को छोड़कर, पाठ में प्रत्येक यूनिकोड प्रतीक (मुद्राएं, गणित, इमोजी) ढूंढें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

\\p{S} यूनिकोड की प्रतीक श्रेणी से मेल खाता है। अपना झंडा याद रखें.

3 प्रयासों के बाद समाधान उपलब्ध है

अतिरिक्त चुनौती

व्यायाम#regex.m5.l4.e3
प्रयास: 0लोड हो रहा है...

`\p{स्क्रिप्ट=सिरिलिक}` का उपयोग करके सिरिलिक वर्णमाला के अक्षरों वाले सभी शब्द खोजें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

+ क्वांटिफायर और यू ध्वज के साथ \\p{स्क्रिप्ट=सिरिलिक} का उपयोग करें।

3 प्रयासों के बाद समाधान उपलब्ध है