जावास्क्रिप्ट रेगुलर एक्सप्रेशन में सेट के अंदर हाइफन
हाइफन - [ ] के अंदर एक विशेष प्रतीक भी है
(लेकिन बाहर - नहीं)। यदि आपको हाइफन को स्वयं एक प्रतीक के रूप में चाहिए - तो उसे वहाँ रखें,
जहाँ इसे समूह विभाजक के रूप में नहीं समझा जाएगा।
यह महत्वपूर्ण क्यों है: आप स्वयं ध्यान दिए बिना प्रतीकों का एक समूह बना सकते हैं।
उदाहरण के लिए, इस तरह - '[:-@]' - आप सोचते हैं कि
आप कोलन, हाइफन और एट साइन चुन रहे हैं, लेकिन वास्तव में
: और @ के बीच के प्रतीकों का एक समूह बन जाता है। इस समूह में
निम्नलिखित प्रतीक शामिल हैं: ? < = > : ;
ये कहाँ से आए? ASCII तालिका से - कोलन का नंबर एट साइन से कम होता है - और एक समूह बन जाता है। यानी सभी समूह ASCII तालिका के अनुसार बनते हैं (इच्छा होने पर इसका उपयोग किया जा सकता है)।
इससे कैसे निपटें: हाइफन प्रतीक को वहाँ रखें
जहाँ यह निश्चित रूप से समूह प्रतीक के रूप में स्वीकार नहीं किया जाएगा, उदाहरण के लिए, शुरुआत में या अंत में
(यानी [ के बाद या ] से पहले)।
हाइफन को एस्केप भी किया जा सकता है - तब
यह स्थिति की परवाह किए बिना स्वयं को दर्शाएगा।
उदाहरण के लिए, [:-@] के बजाय लिखें
[:\-@] - और अब कोई समूह नहीं होगा, बल्कि
तीन प्रतीक होंगे - कोलन, हाइफन और एट साइन
@।
उदाहरण
निम्नलिखित उदाहरण में खोज पैटर्न इस प्रकार है:
अंक 1, फिर 'a'
से 'z' तक का अक्षर, फिर अंक 2:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a-z]2/g, '!');
परिणामस्वरूप वेरिएबल में निम्नलिखित लिखा जाएगा:
'! 1-2 ! !'
उदाहरण
आइए अब हाइफन को एस्केप करें। परिणामस्वरूप
खोज पैटर्न इस प्रकार है: अंक 1, फिर
अक्षर 'a', या हाइफन, या अक्षर 'z',
फिर अंक 2:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a\-z]2/g, '!');
परिणामस्वरूप वेरिएबल में निम्नलिखित लिखा जाएगा:
'! ! 1c2 !'
उदाहरण
बिना एस्केप किए, केवल हाइफन को बदला जा सकता है:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[az-]2/g, '!');
परिणामस्वरूप वेरिएबल में निम्नलिखित लिखा जाएगा:
'! ! 1c2 !'
उदाहरण
निम्नलिखित उदाहरण में खोज पैटर्न इस प्रकार है:
पहला प्रतीक छोटे अक्षर या
हाइफन '-' है, फिर दो अक्षर 'x':
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-z-]xx/g, '!');
परिणामस्वरूप वेरिएबल में निम्नलिखित लिखा जाएगा:
'! Axx ! @xx'
उदाहरण
निम्नलिखित उदाहरण में खोज पैटर्न इस प्रकार है:
पहला प्रतीक छोटे, बड़े
अक्षर या हाइफन '-' है, फिर दो अक्षर
'x':
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-zA-Z-]xx/g, '!');
परिणामस्वरूप वेरिएबल में निम्नलिखित लिखा जाएगा:
'! ! ! @xx'
उदाहरण
हाइफन को दो समूहों के बीच रखा जा सकता है - वहाँ यह निश्चित रूप से एक और समूह नहीं बनाएगा:
let str = 'axx 9xx -xx @xx';
let res = str.replace(/[a-z-0-9]xx/g, '!');
परिणामस्वरूप वेरिएबल में निम्नलिखित लिखा जाएगा:
'! ! ! @xx'
व्यावहारिक कार्य
एक स्ट्रिंग दी गई है:
let str = 'xaz xBz xcz x-z x@z';
निम्नलिखित पैटर्न के अनुसार सभी स्ट्रिंग्स खोजें:
अक्षर 'x', बड़ा या छोटा
अक्षर या हाइफन, अक्षर 'z'।
एक स्ट्रिंग दी गई है:
let str = 'xaz x$z x-z xcz x+z x%z x*z';
निम्नलिखित पैटर्न के अनुसार सभी स्ट्रिंग्स खोजें:
अक्षर 'x', फिर या तो डॉलर, या
हाइफन या प्लस, फिर अक्षर 'z'।