2011-10-18 9 views
8

मुझे एक पैटर्न (जावा रेगेक्सपी) की आवश्यकता है जो लाइन के अंत में कुंजी या कुंजी के बाद कॉमा होने पर मेल खाता है। यानी यह निम्नलिखित के दोनों मैच चाहिए:लाइन पैटर्न का प्रतीक या अंत

1. xxxkey,yyy 
2. xxxkey 

Ive [\\,$] पैटर्न की कोशिश की लेकिन यह काम नहीं करता।

उत्तर

11

$ एक चरित्र वर्ग के अंदर अपना विशेष अर्थ खो देता है। का प्रयोग करें बजाय निम्नलिखित:

key(,|$) 

आप को पता है कि क्या वहाँ एक अल्पविराम था की जरूरत नहीं है, आप के बजाय एक गैर पर कब्जा समूह का उपयोग कर सकते हैं:

key(?:,|$) 
+0

कैसे आप चरित्र वर्गों के अंदर विशेष अर्थ के साथ वर्ण से बचें हैं? – Oliver

+0

धन्यवाद धन्यवाद !!!!!!)) – shift66

+0

@ ओलिवर: यह केवल '$' से बचने की बात नहीं है। चूंकि यह एक चरित्र के बजाय एक लंगर है, इसलिए मुझे नहीं लगता कि आप इसके विशेष अर्थ को खोए बिना * एक चरित्र वर्ग * में डाल सकते हैं। किसी भी मामले में, जावा regex वाक्यविन्यास के लिए http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html देखें। – NPE

1

इस प्रयास करें ...

"xxxkey(?:,\\w*)?$" 

या -

"xxxkey(?:,.*)?$" 

या -

"xxxkey(?:,|$)" 

अपनी आवश्यकताओं

0

, पर निर्भर करता है एक चरित्र है, लेकिन $ विशेष है, यह एक चरित्र नहीं है।

,? आज़माएं जिसका अर्थ है एक अल्पविराम या कोई अल्पविराम और $ के साथ इसका पालन करें।

1

यहाँ है कि तुम क्या जरूरत है:

.*key((,.*)|$) 
संबंधित मुद्दे