2010-08-16 4 views
5

इस मूल प्रश्न के लिए खेद है, लेकिन मैं preg_replace के बारे में सारी जानकारी देख रहा हूं जो मुझे मिल सकता है और मैं अभी भी इसे समझ नहीं सकता .. मेरे पास एक बड़ी स्ट्रिंग है, उदाहरण के लिए:Preg_replace, पैटर्न के हिस्से को केवल() में बदल रहा है?

$string= '# tjs { fassdaf } #fsk { fssf} # fskff { casf }'; 

और जब मैं यह कर, यह पूरे पैटर्न ही नहीं, में (भाग) की जगह मैं इसे करने की उम्मीद के रूप में .. मैं सोच रहा हूँ कि कैसे मैं बस() .. धन्यवाद

$pattern= '/#.*tjs.*\{.*(.*)\}/imsU'; 
    $replacement= "test"; 
    $return_string = preg_replace ($string, $pattern, $replacement); 
में भाग जगह ले सकता है

स्ट्रिंग को प्रतिस्थापित करने की उम्मीद:

'# tjs {test} #fsk { fssf} # fskff { casf }'; 
+0

क्या आप अपेक्षित प्रतिस्थापित स्ट्रिंग भी पोस्ट कर सकते हैं? – kennytm

उत्तर

3
$pattern= '/(#\s*tjs\s*\{\s*)(.*?)(\s*\})/imsU'; 
$replacement= "test"; 
$return_string = preg_replace($pattern,'$1'.$replacement.'$3',$string); 
+1

धन्यवाद, अब मैं समझता हूं, मैंने php preg_replace पृष्ठ पर एक उदाहरण में $ 1 और $ 3 का उल्लेख देखा है, लेकिन उन्होंने कुछ अजीब वाक्यविन्यास का उपयोग किया है, इसलिए मुझे लगता है कि – Rick

+0

से मुझे फेंक दिया है आप इसके बजाय \ 1 और \ 3 का भी उपयोग कर सकते हैं $ 1 और $ 3 – stillstanding