मैं नियमित रूप से अभिव्यक्ति के साथ SQL निर्यात फ़ाइल से डेटा डंप करने का प्रयास कर रहा हूं। पोस्ट सामग्री के क्षेत्र से मेल खाने के लिए, मैं '(?P<content>.*?)
' का उपयोग करता हूं। यह ज्यादातर समय ठीक काम करता है, लेकिन यदि फ़ील्ड में '\ n' की स्ट्रिंग होती है तो नियमित अभिव्यक्ति मेल नहीं खाती है। मैं उनसे मिलान करने के लिए नियमित अभिव्यक्ति को कैसे संशोधित कर सकता हूं? धन्यवाद!नियमित अभिव्यक्ति: " n" (newline) वाली स्ट्रिंग से मिलान कैसे करें?
उदाहरण (मैं अजगर उपयोग कर रहा हूँ):
>>> re.findall("'(?P<content>.*?)'","'<p>something, something else</p>'")
['<p>something, something else</p>']
>>> re.findall("'(?P<content>.*?)'","'<p>something, \n something else</p>'")
[]
पी.एस. मोटे तौर पर '\' के साथ सभी तारों को बचने वाले पात्रों के रूप में माना जाता है। मैं रेगिक्स को उनके इलाज के लिए कैसे कह सकता हूं?
धन्यवाद! इसके अलावा, उदाहरण के लिए, यदि मैंने स्ट्रिंग में '\ a' कहा है, तो इसे '\ x07' में परिवर्तित कर दिया जाएगा। क्या उन्हें रखने के लिए कोई रास्ता है? या अगर इससे कोई फर्क नहीं पड़ता कि मैं उन्हें डेटाबेस में डालता हूं? –
'x x7' पाइथन को कोड 7 के साथ वर्ण का प्रतिनिधित्व करने का एक तरीका है। इसका प्रतिनिधित्व करने का एक और तरीका '\ a' लिखना है। स्ट्रिंग में वास्तव में दोनों मामलों में केवल एक ही चरित्र होता है। आप 'len (" \ x07 ")' और 'len (" \ a ") 'की जांच करके इसकी पुष्टि कर सकते हैं। \ "\" "==" \ x07 "की तुलना करने की कोशिश करें या" "इन" '" \ "" ":" "एक" के लिए खोज रहे हैं। "(" एक ") 'या' 0" के लिए '' xx7 "': '" x x7 "में। ढूँढें (" 0 ")'। परिणाम बहुत जानकारीपूर्ण होना चाहिए। –
हाय एडम! यह अभी भी एक समस्या उत्पन्न कर रहा है, यदि मूल स्ट्रिंग में \ 'परिणाम परिवर्तित हो जाएगा', जो SQL आदेशों को तोड़ देगा। इसलिए स्ट्रिंग "जैसा है" होना महत्वपूर्ण है –