मैं दो नियमित अभिव्यक्तियों को तैयार करने की कोशिश कर रहा हूं जो यूआरआई से मेल खाते हैं। ये यूआरआई प्रारूप के हैं: /foo/someVariableData
और /foo/someVariableData/bar/someOtherVariableData
जावा रेगेक्स: नकारात्मक लुकहेड
मुझे दो regexes की आवश्यकता है। प्रत्येक को एक मैच करने की जरूरत है लेकिन दूसरे नहीं।
regexes मैं मूल रूप से के साथ आया हैं: /foo/.+
और /foo/.+/bar/.+
क्रमशः।
मुझे लगता है कि दूसरा रेगेक्स ठीक है। यह केवल दूसरी स्ट्रिंग से मेल खाएगा। पहला रेगेक्स, हालांकि, दोनों से मेल खाता है। तो, मैंने नकारात्मक दिखने के साथ (पहली बार) खेलना शुरू कर दिया। मैं regex /foo/.+(?!bar)
बनाया गया है और यह
public static void main(String[] args) {
String shouldWork = "/foo/abc123doremi";
String shouldntWork = "/foo/abc123doremi/bar/def456fasola";
String regex = "/foo/.+(?!bar)";
System.out.println("ShouldWork: " + shouldWork.matches(regex));
System.out.println("ShouldntWork: " + shouldntWork.matches(regex));
}
परीक्षण करने के लिए निम्न कोड की स्थापना की और, बेशक, उन दोनों true
को हल।
कोई भी जानता है कि मैं क्या गलत कर रहा हूं? मुझे जरूरी नकारात्मक लुकहेड का उपयोग करने की आवश्यकता नहीं है, मुझे बस समस्या को हल करने की ज़रूरत है, और मुझे लगता है कि नकारात्मक लुकहेड ऐसा करने का एक तरीका हो सकता है।
धन्यवाद,