2012-12-22 19 views
36

को प्रतिस्थापित करता है क्या रेगेक्स-सिंटैक्स में सभी समूहों को सीधे बदलने का कोई तरीका है।पायथन रेगेक्स तुरंत

सामान्य तरीके:

re.match(r"(?:aaa)(_bbb)", string1).group(1) 

अभी तक मैं कुछ इस तरह हासिल करना चाहते हैं: समूहों Regex फोन करके

re.match(r"(\d.*?)\s(\d.*?)", "(CALL_GROUP_1) (CALL_GROUP_2)") 

तो मैं सिर्फ नए स्ट्रिंग तात्कालिक यदि संभव हो तो निर्माण करना चाहते हैं तो बस पकड़े गए।

result = re.sub(r"(\d.*?)\s(\d.*?)", r"\1 \2", string1) 

यह पायथन के regex प्रतिस्थापन है (की जगह) समारोह:

उत्तर

76

re.sub पर एक नज़र डालें। प्रतिस्थापन स्ट्रिंग को तथाकथित बैकरेक्शंस (बैकस्लैश, समूह संख्या) से भरा जा सकता है जिसे समूहों द्वारा मिलान किया गया था। समूह को group(...) फ़ंक्शन के समान माना जाता है, यानी 1 से, बाएं से दाएं, कोष्ठक खोलकर, से शुरू होता है।