⊗ppPmRgESCh 226 of 447 menu

PHP में रेगुलर एक्सप्रेशन में विशेष वर्णों को एस्केप करना

मान लीजिए कि हम चाहते हैं कि विशेष वर्ण स्वयं को दर्शाए। इसके लिए इसे बैकस्लैश का उपयोग करके एस्केप करना होगा। आइए उदाहरणों से देखें।

उदाहरण

निम्नलिखित उदाहरण में, रेगुलर एक्सप्रेशन के लेखक चाहते थे, कि खोज पैटर्न इस तरह दिखे: अक्षर 'a', फिर प्लस '+', फिर अक्षर 'x'। हालाँकि, कोड के लेखक ने '+' वर्ण को एस्केप नहीं किया और इसलिए खोज पैटर्न वास्तव में इस तरह दिखता है: अक्षर 'a' एक या अधिक बार, फिर अक्षर 'x':

<?php $str = 'a+x ax aax aaax'; $res = preg_replace('#a+x#', '!', $str); ?>

परिणामस्वरूप वेरिएबल में निम्नलिखित लिखा जाएगा:

'a+x ! ! !'

उदाहरण

और अब लेखक ने प्लस को बैकस्लैश से एस्केप कर दिया है। अब खोज पैटर्न वैसा ही दिखता है, जैसा होना चाहिए: अक्षर 'a', फिर प्लस '+', फिर अक्षर 'x'

<?php $str = 'a+x ax aax aaax'; $res = preg_replace('#a\+x#', '!', $str); ?>

परिणामस्वरूप वेरिएबल में निम्नलिखित लिखा जाएगा:

'! ax aax aaax'

उदाहरण

इस उदाहरण में पैटर्न इस तरह दिखता है: अक्षर 'a', फिर डॉट '.', फिर अक्षर 'x':

<?php $str = 'a.x abx azx'; $res = preg_replace('#a\.x#', '!', $str); ?>

परिणामस्वरूप वेरिएबल में निम्नलिखित लिखा जाएगा:

'! abx azx'

उदाहरण

और अगले उदाहरण में लेखक स्लैश को एस्केप करना भूल गया और रेगुलर एक्सप्रेशन ने सभी सबस्ट्रिंग को पकड़ लिया, क्योंकि अनएस्केप्ड डॉट किसी भी वर्ण को दर्शाती है:

<?php $str = 'a.x abx azx'; $res = preg_replace('#a.x#', '!', $str); ?>

परिणामस्वरूप वेरिएबल में निम्नलिखित लिखा जाएगा:

'! ! !'

उदाहरण

ध्यान दें कि यदि आप डॉट के लिए बैकस्लैश भूल जाते हैं (जब उसे स्वयं को दर्शाना चाहिए) - इस पर ध्यान देना मुश्किल हो सकता है:

<?php preg_replace('#a.x#', '!', 'a.x'); // '!' लौटाएगा, जैसा कि हम चाहते थे ?>

दृष्टि से यह सही ढंग से काम करता है (क्योंकि डॉट किसी भी वर्ण को दर्शाती है, जिसमें सामान्य डॉट '.' भी शामिल है)। लेकिन यदि वह स्ट्रिंग बदल दें, जिसमें प्रतिस्थापन हो रहा है - तो हम अपनी गलती देखेंगे:

<?php preg_replace('#a.x#', '!', 'a.x abx azx'); // '! ! !' लौटाएगा, जबकि अपेक्षा थी '! abx azx' ?>
हिन्दी
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
हम साइट के कार्य, विश्लेषण और व्यक्तिगतकरण के लिए कुकीज़ का उपयोग करते हैं। डेटा प्रसंस्करण गोपनीयता नीति के अनुसार किया जाता है।
सभी स्वीकार करें कॉन्फ़िगर करें अस्वीकार करें