के साथ डबल-कोट्स में निहित नहीं है, मैंने पहले इस प्रश्न से पूछा था और यह बंद था क्योंकि यह एक डुप्लिकेट था, जिसे मैं स्वीकार करता हूं और वास्तव में Java: splitting a comma-separated string but ignoring commas in quotes प्रश्न में उत्तर मिला, इसलिए जो भी पोस्ट किया गया यह।मोड़ पर एक स्ट्रिंग को विभाजित करें जो मोड़
लेकिन बाद में मैंने एक और मुद्दे में भाग लिया है। जाहिर है कि मुझे क्या करने की ज़रूरत है "," मेरे डिलीमीटर के रूप में शून्य या यहां तक कि डबल-कोट्स की संख्या भी है, लेकिन ब्रैकेट में निहित किसी भी "," को अनदेखा भी किया जाता है।
तो निम्नलिखित:
"Thanks,", "in advance,", "for("the", "help")"
रूप tokenize चाहेंगे:
- धन्यवाद, पहले से
- , के लिए
- ("", "सहायता")
मुझे यकीन नहीं है कि मौजूदा रेगेक्स I को संशोधित करने के लिए वैसे भी है या नहीं। मैं इसके लिए अनुमति देने के लिए उपयोग कर रहा हूँ, लेकिन किसी भी मार्गदर्शन की सराहना की जाएगी।
line.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
वांछित परिणाम क्या है? – DOK
आपको उस गड़बड़ी को संभालने के लिए एक वास्तविक सीएसवी-पार्सर का उपयोग करना चाहिए। नहीं ** प्रत्येक ** पार्सिंग समस्या सबसे अच्छा regexes के साथ संभाला जाता है। –
@ जोआचिम, आप कितने सीएसवी पार्सर्स जानते हैं कि उद्धरण, अंदर के ब्रैकेट्स, कोट्स के अंदर जिस तरह से वह चाहते हैं? –