
फंक्शन ब्लॉक PREG_FILTER नियमित अभिव्यक्तियों के साथ खोजता है और प्रतिस्थापित करता है।
सूचना: यह फ़ंक्शन बाइनरी-सेफ़ है। इसका मतलब है कि UTF8 वर्णों को सीधे संशोधित नहीं किया जा सकता है।
इसके अलावा, फंक्शन ब्लॉक PREG_FILTER केवल मिलान के मामले में (हो सकता है कि परिवर्तित) स्ट्रिंग्स लौटाता है, यह फंक्शन ब्लॉक PREG_REPLACE के साथ समान है।
जिस अभिव्यक्ति को खोजा जाएगा, वह स्ट्रिंग के रूप में। कुछ PCRE संशोधकों का भी उपयोग किया जा सकता है।
प्रतिस्थापित करने के लिए स्ट्रिंग। इसमें \n या $n के रूप में संदर्भ शामिल हो सकते हैं, जहां बाद वाला पसंदीदा है। इनमें से प्रत्येक संदर्भ को उस टेक्स्ट से बदल दिया जाएगा जो nवें ब्रैकेटेड खोज पैटर्न द्वारा कैप्चर किया गया था। n का मान 0 से 99 तक हो सकता है। \0 या $0 उस टेक्स्ट का संदर्भ देते हैं जो पूरे खोज पैटर्न पर मेल खाता है। कैप्चरिंग सब-पैटर्न की संख्या प्राप्त करने के लिए, ओपन ब्रैकेट्स को 1 से बाएं से दाएं की ओर गिना जाता है। प्रतिस्थापित में बैकस्लैश का उपयोग करने के लिए इसे डबल करना होगा "\\".
अगर आप एक प्रतिस्थापन के साथ काम कर रहे हैं, जिसमें एक रेफरेंसिंग के बाद सीधे ही एक और नंबर आता है (यानी, खोज पैटर्न के साथ मेल खाने के बाद एक नंबर आना चाहिए), तो आप अपने रेफरेंसिंग के लिए \1 लिखने का तरीका नहीं उपयोग कर सकते। उदाहरण के लिए, \11 फ़ंक्शन को भ्रमित करेगा, क्योंकि यह नहीं जान पाएगा कि आप रेफरेंसिंग \1 चाहते हैं जिसके बाद नंबर 1 आता है या केवल रेफरेंसिंग \11 चाहते हैं। इस मामले में, समाधान ${1}1 का उपयोग करना है। इससे एक अलग रेफरेंसिंग $1 बनता है और 1 एक अक्षर प्रतीक के रूप में बना रहता है।
अगर आप पुराने संशोधक e का उपयोग करते हैं, तो यह फ़ंक्शन कुछ वर्णों (यानी ', ", \ और NULL) को रेफरेंसिंग के साथ प्रतिस्थापित करने वाले स्ट्रिंग्स में मास्क करता है। यह इसलिए किया जाता है ताकि यह सुनिश्चित हो सके कि जब रेफरेंसिंग का उपयोग किया जाता है जो सिंगल या डबल क्वोटेशन मार्क्स शामिल करते हैं, तो कोई सिंटैक्स एरर नहीं होता है। सुनिश्चित करें कि आप स्ट्रिंग सिंटैक्स को जानते हैं ताकि यह पता चल सके कि मूल्यांकन किया गया स्ट्रिंग कैसा दिखता है।
इनपुट उस स्ट्रिंग को परिभाषित करता है जिसे खोजा जाएगा।
प्रत्येक खोज पैटर्न में प्रत्येक सब्जेक्ट के लिए प्रतिस्थापनों की अधिकतम संभव संख्या। डिफ़ॉल्ट मान: -1 या NULL (कोई सीमा नहीं)।
अगर मिलान (हो सकता है कि परिवर्तित) पाए गए हैं, तो नया स्ट्रिंग Q लौटाया जाता है, अन्यथा SUBJECT अपरिवर्तित लौटाया जाता है या NULL, अगर कोई त्रुटि हुई थी।
आउटपुट उन प्रतिस्थापनों की संख्या लौटाता है जो किए गए हैं।