दिलचस्प पोस्ट
Android में गतिविधियों के बीच डेटा पास करना पीएल / एसक्यूएल, कैसे एक स्ट्रिंग में एकल बोली से बचने के लिए? कैसे PHP में एक दिनांक सरणी सॉर्ट करने के लिए क्या हमारे कार्यों के अंदर कार्य हो सकते हैं? क्या यह शैली html5 ऑडियो टैग के लिए संभव है? MySQL के लिए स्केलिंग समाधान (प्रतिकृति, क्लस्टरिंग) इस कार्यक्रम को गलती से तीन सी ++ कंपाइलर क्यों खारिज कर दिया गया है? निजी अंतिम स्थिर विशेषता बनाम निजी अंतिम विशेषता एसक्यूएल सर्वर में एक्सएमएल एन्कोडिंग <? Xml संस्करण = "1.0" एन्कोडिंग = "यूटीएफ -8"?> एक्सएमएल आउटपुट कैसे जोड़ें कैसपरज का उपयोग करते हुए एक्सएचआर प्रतिक्रियाओं से डेटा को कैसे पकड़ और संसाधित कर सकता हूं? एक तारीख में मिलीसेकंड परिवर्तित (jQuery / JS) PHP सेटलोकाले का कोई प्रभाव नहीं है बराबर (=) बनाम विंडोज सर्विस बनाम शेड्यूल्ड कार्य बुफ़र्ड फाइलें (तेज डिस्क एक्सेस के लिए)

जावा में उद्धरण के बीच डेटा कैसे प्राप्त करें?

मेरे पास टेक्स्ट की ये रेखाएं हैं, जैसे उद्धरणों की संख्या बदल सकती है:

Here just one "comillas" But I also could have more "mas" values in "comillas" and that "is" the "trick" I was thinking in a method that return "a" list of "words" that "are" between "comillas" 

मैं परिणाम उद्धरण के बीच डेटा कैसे प्राप्त करना चाहिए ?:

Comillas
मैस, कॉमिल्स, चाल
ए, शब्द, हैं, कॉमिला

वेब के समाधान से एकत्रित समाधान "जावा में उद्धरण के बीच डेटा कैसे प्राप्त करें?"

इस प्रकार की जानकारी को निकालने के लिए आप नियमित अभिव्यक्ति का उपयोग कर सकते हैं

 Pattern p = Pattern.compile("\"([^\"]*)\""); Matcher m = p.matcher(line); while (m.find()) { System.out.println(m.group(1)); } 

यह उदाहरण मानता है कि लाइन को पार्स किए जाने की भाषा स्ट्रिंग लीटरल्स के भीतर डबल-कोट्स के लिए एस्केप अनुक्रमों का समर्थन नहीं करती है, स्ट्रिंग्स जिसमें कई "लाइन" होते हैं, या स्ट्रिंग के लिए एक एकल कोट की तरह दूसरे सीमांकक का समर्थन करते हैं।

अपाचे कॉमन्स-लैंग पुस्तकालय में StringUtils देखें – इसकी एक substringsBetween विधि के बीच।

 String lineOfText = "if(getip(document.referrer)==\"www.eg.com\" || getip(document.referrer)==\"192.57.42.11\""; String[] valuesInQuotes = StringUtils.substringsBetween(lineOfText , "\"", "\""); assertThat(valuesInQuotes[0], is("www.eg.com")); assertThat(valuesInQuotes[1], is("192.57.42.11")); 
 String line = "if(getip(document.referrer)==\"www.eg.com\" || getip(document.referrer)==\"192.57.42.11\""; StringTokenizer stk = new StringTokenizer(line, "\""); stk.nextToken(); String egStr = stk.nextToken(); stk.nextToken(); String ipStr = stk.nextToken(); 

सबसे पहले, कृपया ध्यान दें कि उपयोगकर्ता == से अधिक के बराबर होना चाहिए। डिफ़ॉल्ट रूप से "==" पूछता है कि क्या वे मेमोरी में एक ही उदाहरण हैं, जो स्ट्रिंग्स में कभी-कभी मामला हो सकता है MyString.equals ("…") के साथ आप तारों के मूल्यों की तुलना कर रहे हैं।

के रूप में आप कोट्स के बीच के मूल्यों को कैसे प्राप्त करते हैं मुझे यकीन नहीं है कि आप क्या कहते हैं। "…" एक वास्तविक वस्तु है वैकल्पिक रूप से आप ऐसा कर सकते हैं:

स्ट्रिंग वेबयूआरएल = "www.eg.com";

यदि आप केवल एक पंक्ति के बजाय संपूर्ण स्रोत फ़ाइल पार्स कर रहे हैं, फ़ंक्शन के व्याकरण के आधार पर एक पार्सर स्ट्रिंग के आधार पर ऐसा करने का प्रयास करने से सुरक्षित विकल्प हो सकता है।

मुझे लग रहा है कि ये आपके व्याकरण में स्ट्रिंग लीटरल होंगे।

यदि आप फ़ाइल से सभी आक्षेपों को प्राप्त करना चाहते हैं:

 import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; public class testReadQuotes { public static void main(String args[]) throws IOException{ Pattern patt = Pattern.compile("\"([^\"]*)\""); BufferedReader r = new BufferedReader(new FileReader("src\\files\\myFile.txt")); String line; while ((line = r.readLine()) != null) { Matcher m = patt.matcher(line); while (m.find()) { System.out.println(m.group(0)); } } } }