2013-05-26 6 views
8

regex? में मैं अगर एक स्ट्रिंग एक दोहरे उद्धरण चिह्नों चरित्र (") के साथ शुरू होता है और एक दोहरे उद्धरण चिह्नों चरित्र भी साथ समाप्त होता है की जाँच करने के regex का उपयोग करने की जरूरत है प्रतिनिधित्व करने के लिए कैसे।दोहरे उद्धरण चिह्नों चरित्र (")

समस्या मैं एक दोहरे उद्धरण चिह्नों का उपयोग नहीं कर सकते हैं चरित्र, कारण यह भ्रमित हो जाता है। वहाँ एक दोहरे उद्धरण चिह्नों चरित्र " का प्रतिनिधित्व करने के लिए regex में, या सामान्य रूप में स्ट्रिंग में किसी भी अन्य रास्ता नहीं है?

String s = """; // ? 
+2

संभावित डुप्लिकेट [स्ट्रिंग में उद्धरण कैसे दर्ज करें?] (Http://stackoverflow.com/questions/3559063/how-to-enter-quotes-in-a-string) या [जावा, भागना (उपयोग करना) एक रेगेक्स में उद्धरण] (http://stackoverflow.com/questions/6398365/java-escaping-using-quotes-in-a-regex) या ... –

उत्तर

17

सबसे पहले, दोहरे उद्धरण चरित्र regex में कुछ खास नहीं है - यह सिर्फ एक और चरित्र है, तो यह regex के नजरिए से भागने की जरूरत नहीं है।

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

इस कोड को अगर अपने स्ट्रिंग से मेल खाता का परीक्षण होगा:

if (str.matches("\".*\"")) { 
    // this string starts and end with a double quote 
} 

ध्यान दें कि आप regex में शुरू और इनपुट मार्कर के अंत (^ और $) जोड़ने के लिए है, क्योंकि matches() कि पूरे आवश्यकता की जरूरत नहीं है इनपुट को सही करने के लिए मिलान किया जा सकता है - ^ और $ निहित हैं।

+0

उद्धरणों के अंदर सामग्री से मेल खाने के लिए एक मजेदार जो मैं अक्सर उपयोग करता हूं एक्सएमएल टैग में गुणों के लिए '" [^ "] *" '(या, जावा स्ट्रिंग से बचने के रूप में, '" \ "[^ \"] * \ "" '') है। खून बहने के लिए असंभव;) – Nyerguds

8

आपको पहले बैकस्लैश का उपयोग करने की आवश्यकता है "। जैसे \"

डॉक here से आप देख सकते हैं कि

एक बैकस्लैश से पहले एक चरित्र (\) एक एस्केप अनुक्रम है और संकलक को विशेष अर्थ नहीं है।

और "(दोहरे उद्धरण) एक escacpe अनुक्रम

जब एक एस्केप अनुक्रम एक प्रिंट बयान में सामना करना पड़ा है, संकलक तदनुसार व्याख्या है। उदाहरण के लिए, यदि आप उद्धरण के भीतर उद्धरण रखना चाहते हैं तो आपको भाग्य अनुक्रम का उपयोग करें, \ ", आंतरिक उद्धरण पर। वाक्य

उसने कहा "हैलो!" मेरे लिए।

आप

System.out.println लिखते थे ("मेरे लिए।" "उन्होंने कहा कि \" नमस्कार \!);

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