2008-08-17 8 views
10

मैं कोड का एक टुकड़ा लिखा वैध अजगर [बैकस्लैश] पलायन में PHP के striplashes परिवर्तित करने के लिए अजगर संस्करण:PHP के stripslashes

cleaned = stringwithslashes 
cleaned = cleaned.replace('\\n', '\n') 
cleaned = cleaned.replace('\\r', '\n') 
cleaned = cleaned.replace('\\', '') 

मैं इसे कैसे गाढ़ा कर सकते हैं?

उत्तर

0

आप स्पष्ट रूप से सब कुछ एक साथ जोड़ सकते हैं:

cleaned = stringwithslashes.replace("\\n","\n").replace("\\r","\n").replace("\\","") 

क्या आप के बाद कर रहे थे कि है? या आप कुछ और झुकाव की उम्मीद कर रहे थे?

-4

पायथन में अंतर्निहित एस्केप() फ़ंक्शन PHP के जोड़ों के समान होता है, लेकिन कोई भी एस्केप() फ़ंक्शन (स्ट्रिप्सलाश) नहीं है, जो मेरे दिमाग में हास्यास्पद है।

बचाव के लिए रेगुलर एक्सप्रेशन (कोड का परीक्षण नहीं):

p = re.compile('\\(\\\S)') 
p.sub('\1',escapedstring) 

सिद्धांत है कि प्रपत्र \\ (नहीं खाली स्थान के) और रिटर्न के लिए कुछ भी लेता है में \ (समान वर्ण)

संपादित करें: पर आगे निरीक्षण, पायथन नियमित अभिव्यक्ति सभी नरक के रूप में टूटा हुआ है;

>>> escapedstring 
'This is a \\n\\n\\n test' 
>>> p = re.compile(r'\\(\S)') 
>>> p.sub(r"\1",escapedstring) 
'This is a nnn test' 
>>> p.sub(r"\\1",escapedstring) 
'This is a \\1\\1\\1 test' 
>>> p.sub(r"\\\1",escapedstring) 
'This is a \\n\\n\\n test' 
>>> p.sub(r"\(\1)",escapedstring) 
'This is a \\(n)\\(n)\\(n) test' 

निष्कर्ष में, पाइथन क्या है।

12

नहीं पूरी तरह से यकीन है कि यह तुम क्या चाहते है, लेकिन ..

cleaned = stringwithslashes.decode('string_escape') 
+0

मुझे लाखों दिन बचाएं। +1 –

2

यह है कि तुम क्या यथोचित कुशलता से नियमित अभिव्यक्ति के माध्यम से नियंत्रित किया जा सकता है चाहता हूँ की तरह लगता है:

import re 
def stripslashes(s): 
    r = re.sub(r"\\(n|r)", "\n", s) 
    r = re.sub(r"\\", "", r) 
    return r 
cleaned = stripslashes(stringwithslashes) 
0

उपयोग decode('string_escape')

cleaned = stringwithslashes.decode('string_escape') 

का उपयोग करना

string_escape: एक स्ट्रिंग स्ट्रिंग अजगर स्रोत कोड

में शाब्दिक रूप में उपयुक्त है कि उत्पादन या बदलने के जोड़() Wilson's उत्तर की तरह।

cleaned = stringwithslashes.replace("\\","").replace("\\n","\n").replace("\\r","\n") 
संबंधित मुद्दे