2013-02-25 8 views
7

जावा के लिए रेगेक्स में "एक या अधिक" ऑपरेटर कैसे उपयोग किया जाता है? से मेल खाता हैपैटर्न मिलान जावा रेगेक्स - "वन-या-अधिक" ऑपरेटर

((क)) - - मेल खाता

जहां ए, बी, सी किसी भी चरित्र

((क) (ख) (ग)): उदाहरण के लिए, मैं इस मेल करना चाहते हैं या अंक

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

+0

में देखो [क्या आप की कोशिश की है?] (Http://whathaveyoutried.com) –

+0

([(+)।] +) <- लेकिन इस – Aneem

+0

काम नहीं करता है क्या प्रत्येक सेट में केवल एक तत्व होता है या ((ए, बी, सी) वैध है? –

उत्तर

11

आप \((\(\w*\))+\)

की तरह कुछ चाहता हूँ

बनाने के यह स्पष्ट है कि यह कैसे काम करता है, यह थोड़ा नेत्रहीन विस्तार:

\( # outer bracket 
( # start of group 
\( # inner bracket 
\w* # 0 or more word characters ([0-9a-zA-Z_]) 
\) # inner bracket 
)  # end of group 
+  # and we do that group 1 or more times 
\) # outer bracket 

स्पष्टीकरण: आप लागू होते हैं * या + या? कुछ ऐसा जो कि (अनदेखा) ब्रैकेट में था, फिर यह केवल एक तत्व के बजाय ब्रैकेट की संपूर्ण सामग्री पर लागू होता है।

जब भी मैं एक regex सवाल है मैं इसे http://www.regular-expressions.info/reference.html

+0

@Supericy यदि ब्रैकेट के बीच रिक्त स्थान हैं, तो रेगेक्स में रिक्त स्थान भी जोड़ें (या '\ s * 'यदि आप व्हाइटस्पेस की मात्रा के बारे में सामान्य होना चाहते हैं) – Patashu

+1

@ जावा में एनीम आपको दो का उपयोग करने की आवश्यकता है resx इंजन को एक बैकस्लैश के रूप में पास करने के लिए backslashes \\ \ क्योंकि यह स्ट्रिंग में भी विशेष चरित्र है। – Pshemo

+1

@ एनीम: जावा अपने तारों में '\ t' और '\ n' जैसे विशेष वर्णों से बचने के लिए बैकस्लाश का उपयोग करता है - जिसका अर्थ यह है कि नियमित अभिव्यक्ति पार्सर उन्हें देखकर बैकस्लैश गायब हो जाता है। इससे बचने के लिए, आपको बैकस्लैश गिनती को दोगुना करना होगा। – Patashu

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