मेरे पास निम्न डेटा है जहां {n}
प्लेसहोल्डर का प्रतिनिधित्व करता है।प्रत्येक उदाहरण को दो वर्णों के बीच बदलें
{n}{n}A{n}{n}A{n}
{n}A{n}{n}{n}{n}A
{n}{n}A{n}A{n}{n}
{n}{n}{n}A{n}A{n}B
{n}A{n}{n}B{n}{n}
A{n}B{n}{n}{n}{n}
मैं उदाहरण पत्र C
के लिए के साथ दो एक वर्णों के बीच प्लेसहोल्डर के प्रत्येक उदाहरण को बदलने के लिए चाहते हैं। मैंने इसके लिए निम्नलिखित रेगेक्स लिखा है और मैं preg_replace
फ़ंक्शन का उपयोग कर रहा हूं।
$str = preg_replace('~(?<=A)(\{n\})*(?=A)~', 'C', $str);
समस्या यह है कि यह एक C
के साथ दो एक के बीच सभी उदाहरणों की जगह है। C
के साथ प्लेसहोल्डर के प्रत्येक व्यक्तिगत उदाहरण को प्रतिस्थापित करने के लिए मैं अपने regex या preg_replace
कॉल को कैसे ठीक कर सकता हूं?
यह मेरा आउटपुट होना चाहिए।
{n}{n}ACCA{n}
{n}ACCCCA
{n}{n}ACA{n}{n}
{n}{n}{n}ACA{n}B
{n}A{n}{n}B{n}{n}
A{n}B{n}{n}{n}{n}
लेकिन वर्तमान में यह इसे आउटपुट करता है।
{n}{n}ACA{n}
{n}ACA
{n}{n}ACA{n}{n}
{n}{n}{n}ACA{n}B
{n}A{n}{n}B{n}{n}
A{n}B{n}{n}{n}{n}
इस स्थिति में क्या होता है: 'ए {एन} ए {एन} ए'? 'एसीए {एन} ए' या 'एसीएसीए'? –