2012-10-18 10 views
5

आप JFlex में केस संवेदी नियमित अभिव्यक्ति पैटर्न कैसे प्राप्त करते हैं।मामले असंवेदनशील JFlex regex

मानक का उपयोग करना (? मैं :) अंकन काम करने के लिए प्रतीत नहीं होता।

उदाहरण के लिए:

To match the case insensitive word "class", the regex would be (?i:class). 
But this doesn't work in a JFlex specification. 

उत्तर

4

उपयोग निर्देशों में से एक:

  • % caseless
  • % ignorecase

से the manual:

यह विकल्प के रूप में यदि वे दोनों अपरकेस और लोअरकेस रूप में निर्दिष्ट किया गया JFlex विनिर्देश में सभी पात्रों और तार को संभालने के लिए कारण बनता है। यह असंवेदनशील कीवर्ड वाले भाषा के लिए स्कैनर निर्दिष्ट करने का एक आसान तरीका सक्षम बनाता है। स्ट्रिंग "तोड़" एक विनिर्देश में अभिव्यक्ति की तरह संभाला उदाहरण के लिए है ([बी बी] [आरआर] [ई] [ए.ए.] [केके])। % Caseless विकल्प मिलान किए गए पाठ को नहीं बदलता है और चरित्र वर्गों को प्रभावित नहीं करता है। तो [ए] अभी भी चरित्र के साथ मेल खाता है और ए भी नहीं। कौन सा अक्षर अपरकेस हैं और जो लोअरकेस अक्षरों को यूनिकोड मानक द्वारा परिभाषित किया गया है और जेएफएक्स द्वारा जावा विधियों Character.toUpperCase और Character.toLowerCase के साथ निर्धारित किया गया है। JLex संगतता मोड (कमांड लाइन पर -jlex स्विच) में,% caseless और% ignorecase भी चरित्र वर्गों को प्रभावित।

+0

धन्यवाद, यह काम किया। – ChrisM

+0

आपका स्वागत है @ChrisMeli। –

+0

+1 लेकिन अगली बार आपको जवाब तेजी से पोस्ट करना चाहिए :)) –

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