मैं jQuery स्रोत कोड में इस नियमित अभिव्यक्ति में आए:यह नियमित अभिव्यक्ति भाग क्या जोड़ता है?
...
rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
...
मैं सोच रहा था कि ऐसा क्यों नहीं बल्कि जटिल था। मैं विशेष रूप से दूसरे भाग के पीछे कारण में दिलचस्पी रखता हूँ:
(?:.*? rv:([\w.]+))?
मैं कुछ शोध किया है, लेकिन मैं समझ नहीं सकता है क्या नियमित अभिव्यक्ति के इस हिस्से कहते हैं।
(?:) to match but not capture
.*? any amount of any character
rv: something literal
([\w.]+) one or more word characters or a dot
? appear 0 or 1 time
विशेष रूप से, कि पिछले ?
मेरे लिए बहुत मतलब नहीं है। पूरे दूसरे भाग से मेल खाता है यदि उस दूसरे भाग द्वारा परिभाषित एक सबस्ट्रिंग है या नहीं। कुछ परीक्षण के साथ और त्रुटि नियमित अभिव्यक्ति बस से अलग प्रतीत नहीं होता:
/(mozilla)/
कोई क्या नियमित अभिव्यक्ति के दूसरे भाग करने के लिए माना जाता है पर कुछ प्रकाश डाला सकता है? यह क्या बाधा डालता है; कौन सी स्ट्रिंग विफल होती है जो /(mozilla)/
या दूसरी तरफ से गुज़रती है? (हालांकि ऐसा लगता है कि वर्तमान में jQuery केवल जांच करता है कि regex से मेल खाता)
मुझे लगता है यह कुछ मोज़िला faking ब्राउज़र अपने उपयोगकर्ता-एजेंट स्ट्रिंग में इसके सामने के आसपास काम करने के लिए है। –
क्या आप थोड़ा और संदर्भ प्रदान कर सकते हैं? एक jQuery प्लगइन का यह हिस्सा था? यदि हां, तो कौन सा? यह कोड कहां दिखाई देता है यह जानना कि कुछ प्रकाश डाला जा सकता है/क्यों लेखक लेखक को यह विशेष पैटर्न चाहते थे, और इसलिए पैटर्न क्या कर रहा है। – jefflunt
@ राफ केटलर: मुझे यकीन नहीं है कि मैं आपको सही ढंग से समझता हूं। Reakersxp fakers को रोकने के लिए क्या जोड़ता है? – pimvdb