ऐसा लगता है कि अधिक मुख्यधारा की भाषा वास्तव में वास्तव में libpcre का उपयोग करने के बजाय "पर्ल-जैसी" regexes के अपने कार्यान्वयन का उपयोग करती है। इस वर्ग में आने वाली भाषाएं (कम से कम) जावा, जावास्क्रिप्ट और पायथन शामिल हैं। बचने के लिए नियमों,
जावा के java.util.regex
पुस्तकालय एक वाक्य रचना है कि बहुत भारी पर्ल पर आधारित है (लगभग। संस्करण 5.8) का उपयोग करता regexes, \p
और \P
यूनिकोड कक्षाएं, गैर लालची और "अधिकार" परिमाणकों, backreferences, \Q
। \E
उद्धरण, और (?...)
में से कई गैर-कैप्चरिंग समूह, शून्य-चौड़ाई वाले लुकहेड/पीछे, और गैर-बैकट्रैकिंग समूह समेत हैं। वास्तव में जावा regexes libpcre करता है की तुलना में पर्ल regexes के साथ आम बात में प्रतीत होता है। :)
जावास्क्रिप्ट भाषा पर्ल से प्राप्त रेगेक्स का भी उपयोग करती है; यूनिकोड कक्षाएं, देखो, स्वामित्व वाले क्वांटिफायर, और गैर-बैकट्रैकिंग समूह अनुपस्थित हैं, लेकिन जावा के लिए मैंने जो कुछ भी उल्लेख किया है वह जेएस में भी मौजूद है।
पायथन के regex वाक्य रचना भी पर्ल 5 के पर आधारित है, गैर लालची परिमाणकों साथ, गैर कब्जा समूहों, देखो आगे/पीछे और सशर्त पैटर्न, साथ ही नामित कैप्चर समूहों सहित (?...)
निर्माणों के सबसे (लेकिन एक साथ पर्ल या पीसीआरई से अलग वाक्यविन्यास)। गैर-बैकट्रैकिंग समूह और 'स्वामित्व' क्वांटिफायर (जहां तक मैं देख सकता हूं) अनुपस्थित हैं, जैसे \p
और \P
यूनिकोड वर्ण वर्ग, हालांकि मानक \d
, \s
, और \w
कक्षाएं अनुरोध किए जाने पर यूनिकोड-जागरूक हैं।
धन्यवाद। मैंने यह दिखाने के लिए अपने प्रश्न को स्पष्ट किया है कि मुझे उन सुविधाओं में दिलचस्पी है जो जावा 1.6 –
पर्ल, पायथन, .NET, libpcre का समर्थन नहीं करता है। वे एकमात्र कार्यान्वयन हैं जिन्हें मैं कैप्चर समूहों नामक समर्थन के बारे में जानता हूं। – hobbs
असल में पाइथन एक्सटेंशन के कई आधुनिक पर्ल पर काम करेंगे। –