2012-06-28 14 views
7

मैंने एक यूआरएल से मेल खाने के लिए एक नियमित अभिव्यक्ति देखी: /^\/users?(?:\/(\d+)(?:\.\.(\d+))?)?/। मैं प्रत्येक समूह मैच की शुरुआत में ?: के उपयोग से उलझन में हूं।नियमित अभिव्यक्ति में '?: `का अर्थ क्या है

इसका क्या अर्थ है?

+0

आप किस रेगेक्स लाइब्रेरी का उपयोग कर रहे हैं? – svick

+1

svick: क्या यह वास्तव में मायने रखता है? स्पष्ट रूप से एक पर्ल-संगत एक। (यह वाक्यविन्यास पर्ल 5 में पेश किया गया था।) – tripleee

+0

@ एसविक: यह पॉज़िक्स स्पेक के लिए एक व्यापक रूप से अपनाया गया विस्तार है। –

उत्तर

10

(?:) (() अभिव्यक्ति का हिस्सा हैं) एक गैर पर कब्जा समूह है।

http://www.regular-expressions.info/refadv.html देखें।

+0

मैं इस सवाल से पूछने वाला था और इस पोस्ट को सुझाव में मिला। महान.. – Samiron

1

के माध्यम से पढ़ें: http://docs.python.org/library/re.html

(? ...) नियमित कोष्ठकों के

एक गैर पर कब्जा संस्करण। मिलान करता है जो भी नियमित अभिव्यक्ति कोष्ठक के अंदर है, लेकिन समूह द्वारा मिलान किया गया सबस्ट्रिंग एक मैच करने के बाद या पैटर्न में बाद में संदर्भित करने के बाद पुनर्प्राप्त नहीं किया जा सकता है।

संबंधित मुद्दे