मेरी समझ यह है कि नियमित अभिव्यक्तियों का जावा का कार्यान्वयन पर्ल पर आधारित है। हालांकि, निम्न उदाहरण में, यदि मैं एक ही स्ट्रिंग के साथ एक ही रेगेक्स निष्पादित करता हूं, तो जावा और पर्ल अलग-अलग परिणाम लौटाते हैं।जावा और पर्ल में नियमित अभिव्यक्ति अलग-अलग क्यों कार्य करती है?
public class RegexTest {
public static void main(String args[]) {
String sentence = "This is a test of regular expressions.";
System.out.println(sentence.matches("\\w") ? "Matches" : "Doesn't match");
}
}
यह रिटर्न: से मेल नहीं खाता
यहाँ पर्ल उदाहरण है:
यहाँ जावा उदाहरण है
my $sentence = 'This is a test of regular expressions.';
print ($sentence =~ /\w/ ? "Matches" : "Doesn't match") . "\n";
यह रिटर्न: मेल
मेरे लिए, पर्ल परिणाम समझ में आता है। यह एक शब्द चरित्र के लिए एक मैच की तलाश में है। मुझे समझ में नहीं आता कि जावा इसे एक मैच क्यों नहीं मानता है। अंतर का कारण क्या है?
पीसीआरई PERL संस्करण 5 के प्रारंभिक दिनों में perl के अनुकूल था, या यह perl v4 था। निश्चित नहीं। इस बीच पर्ल का रेगेक्स बहुत आगे बढ़ गया। अधिक सामान्य प्रश्न (शीर्षक में से एक) का जवाब देने के लिए –
+1। मैं यह जोड़ना चाहता हूं कि जेफरी फ्राइडल द्वारा 'मास्टरिंग रेग्युलर एक्सप्रेशन' किताब सामान्य रेगेक्स स्वादों के बीच समानताएं और अंतर को समझने के लिए बहुत अच्छी है। – Jonik