php - केवल पहले मैच को preg_replace का उपयोग करके बदलें




regex preg-replace (2)

आप इसके लिए preg_replace की limit तर्क का उपयोग कर सकते हैं और इसे 1 सेट कर सकते हैं ताकि कम से कम एक प्रतिस्थापन हो सके:

$new = preg_replace('/aaa/','replacement',$input,1);

इस प्रश्न का पहले से ही यहाँ एक उत्तर है:

मेरे पास संरचना के समान एक तार है: 'aba aaa cba sbd dga gad aaa cbz' । स्ट्रिंग हर बार थोड़ी अलग हो सकती है क्योंकि यह बाहरी स्रोत से है।

मैं 'aaa' की केवल पहली घटना को प्रतिस्थापित करना चाहूंगा, लेकिन दूसरों को नहीं। क्या यह संभव है?


उदाहरण के लिए, $ सामग्री बाहर है:

START 
FIRST AAA 
SECOND AAA

1) यदि आप उपयोग करते हैं:

$content = preg_replace('/START(.*)AAA/', 'REPLACED_STRING', $content);

यह START से अंतिम AAA तक सब कुछ बदल देगा और आपका परिणाम होगा:

REPLACED_STRING

2) यदि आप उपयोग करते हैं:

$content = preg_replace('/START(.*?)AAA/', 'REPLACED_STRING', $content);

आपका रिजल्ट इस तरह होगा:

REPLACED_STRING 
SECOND AAA




preg-replace