java - How to split a comma separated String while ignoring escaped commas? -


मुझे StringUtils.commaDelimitedListToStringArray फ़ंक्शन के एक विस्तारित संस्करण को लिखना होगा जो एक अतिरिक्त पैरामीटर प्राप्त करता है: escape char।

  अल्पविरामित लिस्ट टॉस्ट्रिंगअरेरे ("परीक्षा, परीक्षा \\, परीक्षा \\, परीक्षण, परीक्षण", "\\")  

P> वापस आना चाहिए:

  ["परीक्षा", "परीक्षण, परीक्षण, परीक्षण", "परीक्षण"]  



मेरा नियमित प्रयासों का उपयोग करते हुए स्ट्रिंग को विभाजित करने के लिए स्ट्रिंग.split () का प्रयोग करने का वर्तमान प्रयास है:

  स्ट्रिंग [] सरणी = str.split ("[^ \\\\],");  

लेकिन लौटा सरणी है:

  ["tes", "test \, test \, tes", "test"]  

कोई भी विचार?

नियमित अभिव्यक्ति

 < कोड> [^ \\],  

का अर्थ है "एक चरित्र से मिलान करें जो कि अल्पविराम के बाद बैकस्लैश नहीं है" - यही कारण है कि जैसे t, मिलान कर रहे हैं, क्योंकि t एक वर्ण है जो एक बैकस्लैश नहीं है

मुझे लगता है कि आपको किसी प्रकार का उपयोग करने की ज़रूरत है, एक , को पकड़ने के लिए जो पूर्ववर्ती चरित्र पर कब्जा किए बिना \ नहीं है, कुछ ऐसा

  (? & Lt;! \\),  

(बीटीडब्ल्यू, ध्यान दें कि मेरे पास उद्देश्यपूर्ण रूप से दोगुना नहीं है- इसे और अधिक पठनीय बनाने के लिए बैकस्लैश से बचें)


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -