2008-08-04 9 views
21

मैं देशी सी ++, या तो मंच-स्वतंत्र या विंडोज-विशिष्ट के लिए एक मजबूत, उपयोग में आसान, नियमित अभिव्यक्ति मूल्यांकनकर्ता की तलाश में हूं।सी ++ में नियमित अभिव्यक्ति समर्थन का उपयोग करने में आसान है?

आवश्यकताएँ:

  • बूस्ट या ऐस regex पुस्तकालयों (दुर्भाग्य से)
  • नेट Regex (या किसी भी प्रबंधित कोड) का उपयोग नहीं कर सकते हैं उपयोग नहीं कर सकते

मुख्य आवश्यकता है यह स्टैंडअलोन और खुला होना चाहिए।

+0

बस उत्सुक - आप बूस्ट का उपयोग क्यों नहीं कर सकते? – svec

+0

@svec क्योंकि स्रोत कोड वितरण के लिए है, और उनमें से कई जो इसका उपयोग करते हैं उनमें बूस्ट नहीं है, और बूस्ट डाउनलोड और निर्माण नहीं करना चाहते हैं या नहीं। लेकिन कुछ पुस्तकालयों को शामिल करने के लिए रखा गया है ताकि यह अच्छा हो। 5 साल पहले होना चाहिए था, लेकिन हे। हर तरह से। –

+1

लेकिन ग्राहकों को बढ़ावा स्थापित करने की आवश्यकता नहीं है। बस बढ़ावा के साथ स्थिर रूप से लिंक करें, और कोई समस्या नहीं होनी चाहिए। (और आपको हमेशा किसी भी तरह से बढ़ावा देने के साथ स्थिर रूप से लिंक करना चाहिए, भले ही क्लाइंट ने इसे इंस्टॉल किया हो, फिर भी उनके पास एक ही संस्करण नहीं हो सकता है, या इसे एक ही विकल्प के साथ संकलित किया गया है।) –

उत्तर

7

सी ++ 11 अब नियमित अभिव्यक्ति का समर्थन शामिल है। यह मंच स्वतंत्र होगा। आपको बस एक हालिया कंपाइलर चाहिए। यह जानने के लिए कि कौन सी उपयोग करनी है, निम्न सूची देखें।

http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport

आशा है कि यह

8

कोशिश libpcre

आप वे एक खिड़कियों बंदरगाह जो काम करना चाहिए है खिड़कियों पर अटक कर रहे हैं। मुझे पता है कि e-texteditor इसका उपयोग करता है, इसलिए कम से कम यह सबूत यह काम करता है :-)

3

जीएनयू सी लाइब्रेरी regular expressions का समर्थन करता है। यह खुला है, और आरई कोड आसानी से निकालने योग्य लगता है।

3

जीएनयू सी लाइब्रेरी नियमित अभिव्यक्ति सुविधा (regcomp(), regexec() और दोस्तों) टूटा हुआ है। बदले में libetre का प्रयोग करें; फ़ंक्शन हस्ताक्षर ग्लिब द्वारा प्रदान किए गए लोगों से मेल खाते हैं। http://laurikari.net/tre/

7

यदि आप विजुअल स्टूडियो का उपयोग करते हैं तो आप विजुअल सी ++ 2008 फ़ीचर पैक रिलीज का उपयोग कर सकते हैं, यह कुछ TR1 लागू करता है, और इसमें नियमित अभिव्यक्ति पार्सिंग शामिल है। Get it

1

आप माइक्रोसॉफ्ट एटीएल की रेगेक्स लाइब्रेरी का उपयोग क्यों नहीं करते? हाल ही में केनी केर ने short article लिखा है। आशा करता हूँ की ये काम करेगा।

3

मैं PCRE के लिए अनुशंसा करता हूं। मैंने इसे विंडोज़ में सी ++ परियोजनाओं में इस्तेमाल किया है और यह बहुत अच्छा काम करता है। वाणिज्यिक सॉफ्टवेयर बनाने के लिए भी यह मुफ़्त है। यह एक वास्तविक मानक नियमित अभिव्यक्ति भाषा का कुछ भी लागू करता है, जिसका आपके उपयोगकर्ताओं का स्वागत होगा। पीसीआरई निश्चित रूप से पर्ल-संगत है, और पायथन भी उसी लाइब्रेरी का उपयोग करता है।

मूल पीसीआर इंटरफ़ेस थोड़ा अजीब और बहुत सी-शैली है, इसलिए शायद इसके चारों ओर एक अच्छा सी ++ रैपर लिखना उचित है। वहां बहुत पहले से ही एक है, लेकिन मैं किसी से परिचित नहीं हूं।

0

कोडप्लेक्स से मुफ्त एटीएल सर्वर लाइब्रेरी में रेगेक्स पार्सर शामिल है।

ATL Server

2

सी ++ 11 में मदद करता है और अब आगे standard regular expression library शामिल हैं।
<regex> शीर्षलेख शामिल करें, और उपयोग करें।