हमारे पास:
& gt; & gt; & gt; Str 'exit \ r \ ndrwxr-xr-x 2 रूट रूट 0 जनवरी 1 2000 \ x1b [1; 34mbin \ x1b [0m \ r \ ndrwxr-xr-x 3 रूट रूट 0 जनवरी 1 2000 \ x1b [1; 34mlib \ X1b [0m \ r \ ndrwxr-xr-x 10 root root 0 जनवरी 1 1970 \ x1b [1; 34mlocal \ x1b [0m \ r \ ndrwxr-xr-x 2 रूट रूट 0 जनवरी 1 2000 \ x1b [1; 34msbin \ X1b [0m \ r \ ndrwxr-xr-x5 रूट रूट 0 जनवरी 1 2000 \ x1b [1; 34mshare \ x1b [0m \ r \ n # बाहर निकलना \ r \ n '& gt; & gt; & gt; Print str exit drwxr-xr-x 2 रूट रूट 0 जनवरी 1 2000 बिन drwxr-xr-x 3 root root 0 जनवरी 1 2000 lib drwxr-xr-x 10 root रूट 0 जनवरी 1 1970 स्थानीय drwxr-xr-x 2 रूट रूट 0 जनवरी 1 2000 एसबीएन ड्र्वाक्सआर-एक्सआर-एक्स 5 रूट रूट 0 जनवरी 1 2000 शेयर # बाहर निकलें
मैं सभी '\ xblah [0m' बकवास का उपयोग कर regexp का उपयोग करना चाहते हैं मैंने कोशिश की है
re.sub (str, r '(\ x। * M)', '')
लेकिन ऐसा नहीं है चाल किया किसी भी विचार?
आपके पास कुछ समस्याएं हैं:
-
आप गलत क्रम में गलत re.ub के लिए तर्क भेज रहे हैं। यह होना चाहिए:
re.sub (regexp_pattern, प्रतिस्थापन, स्रोत_स्ट्रिंग)
-
स्ट्रिंग में "\ x" नहीं है कि "\ x1b" एस्केप वर्ण है, और यह एक एकल वर्ण है।
-
इंटरजे के रूप में बताया गया है, आप चाहते हैं "। *?" "। *" के बजाय, क्योंकि अन्यथा यह आखिरी "मी" के माध्यम से पहली एस्केप से सब कुछ मेल कर देगा।
re.sub के लिए सही कॉल है:
प्रिंट re.sub ('\ x1b। *? M', '', s)
वैकल्पिक रूप से, आप इसका उपयोग कर सकते हैं:
प्रिंट re.sub ('\ x1b [^ m] * m', '', s)
No comments:
Post a Comment