उदाहरण के लिए की जगह regex की सभी घटनाओं को बदलने के लिए, मैं "2x4" को "2 XBY 4" जो मैं रूपांतरित करना चाहते हैं की तरह उत्पाद आयामों की एक बहुत कुछ के साथ पाठ है।कैसे के रूप में यदि लागू करने के बार-बार
pattern = r"([0-9])\s*[xX\*]\s*([0-9])"
re.sub(pattern, r"\1 xby \2", "2x4")
'2 xby 4' # good
re.sub(pattern, r"\1 xby \2", "2x4x12")
'2 xby 4x12' # not good. need this to be '2 xby 4 xby 12'
मैं जो करना चाहता हूं उसका वर्णन करने का एक तरीका तब तक प्रतिस्थापन दोहराता है जब तक कि कोई और प्रतिस्थापन नहीं किया जा सके। उदाहरण के लिए, मैं ऊपर प्रतिस्थापन के लिए बस दो बार जो मैं चाहता
x = re.sub(pattern, r"\1 xby \2", "2x4x12")
x = re.sub(pattern, r"\1 xby \2", x)
'2 xby 4 xby 12'
प्राप्त करने के लिए कर सकते हैं लेकिन मैं वहाँ एक बेहतर तरीका
मैं मैं इस बेहतर भले ही मैंने सोचा कि मैं इस सवाल का जवाब था की तरह लगता है। लुकहेड इसे प्राप्त करना चाहिए क्योंकि प्रतिस्थापन बाएं से दाएं किया जाता है। – NickT
धन्यवाद। क्या आप स्पष्ट रूप से समझा सकते हैं कि यह क्या कर रहा है? यह सही लगता है, लेकिन मैं पूरी तरह से समझ में नहीं आता क्यों। – Ben
मैंने उत्तर में लुकहेड का स्पष्टीकरण जोड़ा है। – anubhava