मामला बंद: आखिरकार मैं इसे सही तरीके से लोड कर रहा था, लेकिन मेरे कोड में अन्य, उप-इष्टतम व्यवहार ने मुझे यह सोचने पर मजबूर कर दिया कि मैं नहीं था।
मैं JSON से एक रेगेक्स स्ट्रिंग लोड कर रहा हूं:
"version_scheme": {
"type": "tuple",
"re": "data-file=\"kitty_portable-(.*?)\\.exe\""
}
हालांकि, re.findall(...)
का उपयोग करते हुए, मुझे []
इस तरह के घास के ढेर पर वापस मिल जाता है (यह requests
मॉड्यूल का उपयोग करके किए गए GET अनुरोध की एक text
विशेषता होगी):
<a href="https://www.fosshub.com/KiTTY.html?dwl=kitty_portable-0.74.4.10.exe"
data-file="kitty_portable-0.74.4.10.exe"
aria-label="Download kitty_portable-0.74.4.10.exe Windows portable"
2 जवाब
दोहरे उद्धरण चिह्न "
को दोहरा होना चाहिए- (\\"
) या ट्रिपल-एस्केप (\\\"
)।
शाब्दिक बिंदु .
को चौगुना-एस्केप (\\\\.
) करने की आवश्यकता है।
पीछे की ओर काम करना
कच्ची स्ट्रिंग जो आप चाहते हैं:
r'data-file="kitty_portable-(.*?)\.exe"'
आप जो स्ट्रिंग चाहते हैं:
'data-file="kitty_portable-(.*?)\\.exe"'
वह स्ट्रिंग जिसे आप JSON के रूप में संग्रहीत करना चाहते हैं:
'data-file=\\"kitty_portable-(.*?)\\\\.exe\\"'
- प्रत्येक दोहरे उद्धरण चिह्न
"
को या तो डबल बैकस्लैश या ट्रिपल बैकस्लैश से बचने की आवश्यकता है। - शाब्दिक बिंदु से पहले के दो बैकस्लैश में से प्रत्येक को एक बैकस्लैश से बचने की आवश्यकता है।
आपका रेगेक्स निश्चित रूप से पायथन में काम करना चाहिए:
inp = 'something data-file="kitty_portable-0.74.4.10.exe" something'
matches = re.findall(r'data-file="kitty_portable-(.*?)\.exe"', inp)
print(matches) # ['0.74.4.10']
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।