मुझे एक स्ट्रिंग से सभी वर्णों को हटाने की आवश्यकता है जो a-z A-Z 0-9
में नहीं हैं या रिक्त स्थान नहीं हैं।गैर-अल्फान्यूमेरिक वर्णों को कैसे निकालें?
क्या किसी के पास ऐसा करने का कोई कार्य है?
मुझे एक स्ट्रिंग से सभी वर्णों को हटाने की आवश्यकता है जो a-z A-Z 0-9
में नहीं हैं या रिक्त स्थान नहीं हैं।गैर-अल्फान्यूमेरिक वर्णों को कैसे निकालें?
क्या किसी के पास ऐसा करने का कोई कार्य है?
लगता है जैसे आप जानते थे कि आप पहले से क्या करना चाहते थे, आप मूल रूप से इसे रेगेक्स के रूप में परिभाषित करते हैं।
preg_replace("/[^A-Za-z0-9 ]/", '', $string);
Regular expression आपका उत्तर है।
$str = preg_replace('/[^a-z\d ]/i', '', $str);
i
खड़ा है।^
का मतलब है, शुरू नहीं होता है।\d
किसी भी अंक से मेल खाता है।a-z
a
और z
के बीच सभी वर्णों से मेल खाता है। i
पैरामीटर के कारण आपको a-z
और A-Z
निर्दिष्ट करने की आवश्यकता नहीं है।\d
के बाद एक जगह है, इसलिए इस रेगेक्स में रिक्त स्थान की अनुमति है।पसंद नहीं करता है हम इस बारे में स्पष्टीकरण चाहते हैं :)। लोग यहां देखने के लिए आते हैं कि यह क्यों है। कृपया रेगेक्स स्पष्टीकरण पर भी विचार करें! स्पष्टीकरण के बिना आपने जो लिखा है उसे जानने के लिए हर कोई पर्याप्त उन्नत नहीं है। धन्यवाद –
@PratikCJoshi मैं मामले असंवेदनशील के लिए खड़ा है।^मतलब है, साथ शुरू नहीं होता है। \ डी किसी भी अंक से मेल खाता है। ए-जेड ए और जेड के बीच सभी पात्रों से मेल खाता है। I पैरामीटर के कारण आपको ए-जेड और ए-जेड निर्दिष्ट करने की आवश्यकता नहीं है। \ N वहां एक जगह है, इसलिए इस रेगेक्स में रिक्त स्थान की अनुमति है। – bart
लोग ** टिप्पणियों को उत्तर के रूप में नहीं पढ़ते हैं। कृपया उत्तर अपडेट करें! –
यूनिकोड वर्ण के लिए, यह है:
preg_replace("/[^[:alnum:][:space:]]/u", '', $string);
अब, यह असली जवाब है! +1 – CrisDeBlonde
हाय वॉन्डो,/ui चीज़ के साथ क्या है .. आप इसे क्या कहते हैं? क्या कोई मुझे कुछ प्रकाश छोड़ सकता है। धन्यवाद। – kebyang
यू: यूनिकोड, i: केस असंवेदनशील – voondo
है कि यहाँ के लिए एक बहुत सरल regex है:
\W|_
और जैसा कि आप इसकी आवश्यकता है (एक आगे /
स्लेश सीमांकक के साथ) का इस्तेमाल किया।
preg_replace("/\W|_/", '', $string);
टेस्ट इसे यहाँ इस महान उपकरण के साथ बताते हैं कि क्या regex कर रही है:
आपको अभी भी '/ u' ध्वज की आवश्यकता है अन्यथा गैर-असीसी अक्षरों को भी हटा दिया गया है। – Xeoncross
वह वेबसाइट अद्भुत है। अच्छा संसाधन! –
नीट [लेकिन रिक्त स्थान से भी मेल खाता है] (https://www.regex101.com/r/afwxAB/1) और यदि यह वांछित है, तो शायद * * वर्ण वर्ग * और अतिरिक्त * क्वांटिफ़ायर * के उपयोग से प्रदर्शन को दोगुना कर सकता है * * एक या अधिक * ['[\ W_] +'] (https://www.regex101.com/r/afwxAB/2) –
मैं इस का उपयोग करें:
//to remove non english character
$str = preg_replace('/[^\00-\255]+/u', '', $str);
यह सभी प्रकार के गलत है। यह ऐसा कुछ नहीं कर रहा है जैसा आपको लगता है कि यह कर रहा है। वे ऑक्टल हैं। ऑक्टल 255 वास्तव में 173 दशमलव या 0xAD हेक्स है। आपने जो लिखा है वह '[^ \ x00- \ xAD]' के बराबर है, जहां 0xAD सॉफ़्ट हाइपेन के लिए कोड पॉइंट है। भले ही आप यह सही कर रहे थे, '[^ \ x00- \ xFF]' पूरी तरह से बकवास और गलत है। – tchrist
हालांकि कोड की सराहना की जाती है, यह हमेशा एक साथ स्पष्टीकरण होना चाहिए। यह लंबे समय तक नहीं होना चाहिए लेकिन इसकी उम्मीद है। – peterh
मैं जवाब के लिए भी देख रहा था और मेरा इरादा हर गैर-अल्फा को साफ करना था और वहां एक से अधिक जगह नहीं होनी चाहिए।
तो, मैं यह करने के लिए एलेक्स के जवाब संशोधित है, और इस के लिए मुझे preg_replace('/[^a-z|\s+]+/i', ' ', $name)
regex ऊपर कर दिया sy8ed sirajul7_islam
sy ed sirajul islam
को स्पष्टीकरण काम कर रहा है: रेगुलर एक्सप्रेशन मामले असंवेदनशील में z करने के लिए एक से किसी भी की जाँच करेगा रास्ता या एक से अधिक सफेद रिक्त स्थान, और इसे एक ही स्थान में परिवर्तित कर दिया जाएगा।
preg_replace("/\W+/", '', $string)
आप इसे यहाँ का परीक्षण कर सकते हैं: http://regexr.com/
प्रति @ एलेक्स स्टीवंस उत्तर, यह अंडरस्कोर "_" को पकड़ नहीं लेता है। –
[\W_]+
$string = preg_replace("/[\W_]+/u", '', $string);
यह सब A-Z, एक-z, 0-9 नहीं चुन सकते हैं और इसे हटा दें।
यहाँ उदाहरण देखें: https://regexr.com/3h1rj
यह regex/[\ W _] +/u का क्या अर्थ है? –
zuk1: regexbuddy कि – relipse
के साथ एक बहुत मदद यहाँ एक उदाहरण है अगर आप एक की अनुमति दी चरित्र के रूप में हाइफन शामिल करना चाहते है। मुझे इसकी आवश्यकता थी क्योंकि मुझे ईमेल पते के आधार पर मूडल उपयोगकर्ता नाम से अस्वीकृत पात्रों को अलग करने की आवश्यकता थी: preg_replace ("/ [^ a-z0-9 _। @ \ -] /", '' $ string); –
क्या यह उद्धरण चिह्न (डबल-कोट्स) के बजाय, नियमित अभिव्यक्ति के आस-पास एस्ट्रोफ़ेस (सिंगल-कोट्स) के साथ बिल्कुल वही काम करेगा? उदा।: Preg_replace ('/ [^ ए-ज़ा-जे 0-9] /', '', $ स्ट्रिंग); ' – jtheletter