2015-03-09 8 views
5

के बीच कुछ भी हटाएं मैं "?" के बीच कुछ भी हटाना चाहता हूं और "/"दो वर्ण

अपने पाठ "hi?0/hello/hi"

है मैं देखने के लिए इस बाहर डाल

"hi?/hello/hi" 

मेरे कोड

key.replaceAll("\\?.*/","?/"); 

है लेकिन मेरे आउटपुट

"hi?/hi" 
है जरूरत

क्या है गलत?

+0

मैं नहीं कर सकता कि विभाजित या कुछ और के साथ – user298582

उत्तर

6

आप लालची मिलान का उपयोग कर रहे हैं, इसलिए यह अगले स्लैश तक भी मेल खाता है। प्रयास करें:

key.replaceAll("\\?.*?/","?/"); 

एक वैकल्पिक अभी भी लालची मिलान का उपयोग कर / को छोड़कर किसी भी चरित्र से मेल करने के लिए है:

key.replaceAll("\\?[^/]*/","?/"); 
5

उपयोग करें:

key.replaceAll("\\?.*?/","?/") 

आप greedy और non greedyhere मिलान के बारे में अधिक पढ़ सकते हैं

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