2012-02-29 27 views
5

मैं इस पैटर्न:जावा नियमित अभिव्यक्ति?

Pattern.compile("T([0-9]*)");

जो सकारात्मक संख्या के लिए ठीक काम करता है, लेकिन मैं यह भी उदाहरण "टी 1T3T44" काम करना चाहिए के लिए ऋणात्मक संख्याओं की ज़रूरत है। या शायद 'टी' के बजाय स्थान का उपयोग करें, इसलिए इसे इस तरह के तारों के लिए काम करना चाहिए: "- 1 2 3 2 -1 6 2"। क्षमा करें मैंने पहले नियमित रूप से नियमित अभिव्यक्तियों का उपयोग नहीं किया है। तो कोई सुझाव? धन्यवाद।

+0

http://regexlib.com/DisplayPatterns.aspx?cattabindex=2&categoryId=3 – vulkanino

+0

क्षमा करें मैंने टी – Fofole

उत्तर

5

आप कोशिश कर के बारे में सोचा है:

"T(-?[0-9]+)" 

आप मैं भी "" के बाद से "+" (एक या अधिक) के लिए "*" (शून्य या अधिक) बदल दिया है पर ध्यान देंगे तकनीकी रूप से कोई अंक नहीं है: -)

+1

के बजाय अंतरिक्ष के लिए अपना उत्तर संपादित किया है, यह बिल्कुल सही नहीं है, क्योंकि यह अनुमति देता है: -0। शून्य नकारात्मक नहीं हो सकता है। यह देखने के लिए कि इसका सामना कैसे करें, मेरा जवाब देखें। – Lukasz

+0

@ फोफोल: हाँ, बस इसे रेगेक्स में किसी स्थान के साथ प्रतिस्थापित करें, कोई समस्या नहीं है। लुकाज़, हाँ, अगर आप नकारात्मक शून्य को अस्वीकार करना चाहते हैं, तो आपको कुछ और जटिल की आवश्यकता होगी। व्यक्तिगत रूप से, मुझे लगता है कि गुदा-प्रतिधारण चरण के करीब है लेकिन मैं आपका दृष्टिकोण देखता हूं :-) – paxdiablo

+0

धन्यवाद। यह समझना आसान है और मुझे वास्तव में -0 की जांच करने की आवश्यकता नहीं है क्योंकि मैं स्ट्रिंग को स्वयं सही तरीके से बनाता हूं इसलिए मैं इसे स्वीकृत उत्तर के रूप में फ़्लैग करता हूं। उम्मीद है कि हर कोई इस बारे में खुश है। – Fofole

3

साथ प्रयास करें:

Pattern.compile("T(-?[0-9]*)"); 
1

एम कम से कम वैकल्पिक हो सकता है?

टी - ([0-9] *)

9
Pattern.compile("T(-{0,1}(?!0)\\d+)"); 

कृपया नकारात्मक लुक-आगे (?!0) के उपयोग पर ध्यान दें बाहर करने के लिए -0 संख्या और संख्या है कि 0. के साथ शुरू

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