preg_replace
पर उचित वाक्यविन्यास क्या है PHP में केवल ब्रांड्स?PHP: प्रीग कोष्ठक को प्रतिस्थापित करें?
$search = preg_replace('/\(\)/','',$search);
धन्यवाद
preg_replace
पर उचित वाक्यविन्यास क्या है PHP में केवल ब्रांड्स?PHP: प्रीग कोष्ठक को प्रतिस्थापित करें?
$search = preg_replace('/\(\)/','',$search);
धन्यवाद
मान लिया जाये कि आप $search
स्ट्रिंग से दोनों (
और )
निकालना चाहते हैं:
$search = preg_replace('/\(|\)/','',$search);
मुझे लगता है कि यह करने के लिए सबसे तेज़ तरीका उपयोग कर रहा है strtr
फ़ंक्शन, इस तरह:
$search = strtr($search, array('(' => '', ')' => ''));
यह उचित वाक्यविन्यास है, हालांकि preg_replace नियमित अभिव्यक्तियों के लिए है, अगर आप ()
को प्रतिस्थापित करना चाहते हैं तो str_replace दो गुना तेज है।
आप (
या )
जहाँ भी वे कर रहे हैं, तो आप इस्तेमाल कर सकते हैं
preg_replace("/\(|\)/", "", $str);
हाँ, लेकिन आपको स्ट्रिंग के दो बार स्ट्रिंग का उपयोग करना होगा, हालांकि प्रत्येक कोष्ठक के लिए एक? – Norse
यह सच है, लेकिन मुझे यकीन है 5 $ यह अभी भी तेजी से किया जाएगा: पी –
@Tony: 'strtr' समारोह एक बार में कई" str_replaces "बना सकते हैं। मैं इसे मूल टेम्पलेटिंग क्लास में उपयोग करता हूं ... लूप + str_replace के बजाय, केवल एक स्ट्रेट कॉल ... –
आप इस तरह मतलब बदलना चाहते हैं?
$search = preg_replace('/[()]/', '', $search);
यह युग्मन के संबंध में सभी कोष्ठक को तोड़ देगा।
केस-असंवेदनशील कंस्ट्रैसिस? :) –
आम तौर पर यह केवल शुरुआत है ... आदत का बल। :) – Nilpo
यहाँ एक छोटे से क्षेत्र परीक्षण के अपने परिणाम हैं:
preg_replace("/\(|\)/", "", $str): 1.590735912323
preg_replace('/[\(\)]/', '', $str): 1.3762638568878
strtr($str, array('(' => '', ')' => '')): 0.84079194068909
str_replace("(", "", str_replace(")", "", $str)): 0.80222821235657
पिछले दो लगभग समान रूप जे ब्रूनी बताया है।
इसे बेंचमार्क में जोड़ें: 'preg_replace ('/[\ (\)]/',' ', $ str);' - और हमें परिणाम बताएं। –
तो, str_replaces के एक जोड़े के लिए एक एकल strtr की तुलना में तेजी है ... यदि सरणी स्ट्रिंग पैरामीटर के एक जोड़े के पक्ष में बचा जा सकता है, हो सकता है यह तेजी से $ str, ') (' होना चाहिए ... 'strtr (, '') '- लेकिन यह वांछित व्यवहार नहीं है ... भी, कई जगहें हैं, निश्चित रूप से strtr जीत जाएगा! :-) –
हाँ, सीमा तेज दिखती है। स्ट्रस्ट्र और str_replace लगभग समान हैं, मुझे वर्तमान परीक्षण में उल्लेखनीय अंतर नहीं मिल सकता है, वे हर बार ऊपर या नीचे जाते हैं .. स्ट्रस्ट्र हालांकि अधिक सुरुचिपूर्ण समाधान होगा। –
आह, धन्यवाद। यह काम कर रहा है। – Norse
आपको अतिरिक्त रैपिंग की आवश्यकता नहीं है '()' यह पैटर्न को निर्यात करने के लिए है जो इस मामले में अनियंत्रित है। –
@ टोनी: वास्तव में! मैंने उन्हें हटा दिया है। –