Regex बोली में निहित है को छोड़कर सभी सफेद स्थान को निकालना: जावास्क्रिप्टक्या कैप्चर समूह
मैं निम्नलिखित कैप्चर समूह (('|").*?[^\\\2]\2)
कि एक उद्धृत स्ट्रिंग बच गए उद्धरण को छोड़कर का चयन करता है।
उदाहरण के लिए इन मेल ...
"Felix's pet"
'Felix\'s pet'
हालांकि मैं अब इस पद्धति से मिलता जुलता कुछ को छोड़कर एक स्ट्रिंग से सभी सफेद स्थान को निकालना चाहते हैं। क्या कैप्चर समूह \1
पर वापस संदर्भित करने का कोई तरीका है और फिर इसे मैचों से बाहर कर दें?
मैंने अपने सीमित RegEx ज्ञान के साथ ऐसा करने का प्रयास किया है, लेकिन अब तक मैं केवल पैटर्न के पहले या बाद में स्थान का चयन कर सकता हूं।
यदि आप मेरे उदाहरण के साथ खेलना चाहते हैं तो मैंने सुविधा के लिए regexr पर अपनी टेस्ट स्क्रिप्ट सहेजी है।
परिणाम के इरादे से:
key : string
हो जाता है key:string
dragon : "Felix's pet"
हो जाता है dragon:"Felix's pet"
"Hello World" something here "Another String"
हो जाता है
"Hello World"somethinghere"Another String"
आदि ...
@anubhava: मैं डुप्ली वोट से असहमत हूं - स्वीकार्य उत्तर उस रणनीति का उपयोग करता है जो केवल उस प्रश्न में विशेष स्ट्रिंग संरचना के साथ काम करता है, और आपका (बेहतर) उत्तर बच निकले उद्धरणों के साथ विफल रहता है। फिर से खोलने के लिए मतदान। –
@TimPietzcker: पर्याप्त मेला, मुझे यकीन है कि एक बेहतर डुप्लिकेट है लेकिन मुझे बस मेरी खोज का उपयोग नहीं मिल सका। – anubhava
@SnareChops: आपका रेगेक्स बचने वाले उद्धरणों को ध्यान में रखने की कोशिश कर रहा है, लेकिन यह गलत तरीके से करता है (आपकी चरित्र श्रेणी गलत है, और यहां तक कि अगर यह काम करती है, तो आपको केस 'foo \\' 'पर विचार करना चाहिए जहां बैकस्लैश है समापन उद्धरण से पहले, लेकिन यह एक भागने वाली बैकस्लैश नहीं है। क्या आपको ऐसे मामले को संभालने की आवश्यकता होगी? –