2009-12-02 11 views
11

मुझे कॉमा और/या रिक्त स्थान से स्ट्रिंग को विभाजित करने के लिए एक regexp की आवश्यकता है, लेकिन हाइफेनेटेड शब्दों को अनदेखा करें - ऐसा करने का सबसे अच्छा तरीका क्या है?regexp अल्पविराम और रिक्त स्थान से विभाजित स्ट्रिंग, लेकिन हाइफेनेटेड शब्दों को अनदेखा करते हैं?

इसलिए, उदाहरण के लिए - मैं इस चाहता हूँ ...

"foo bar, zap-foo, baz".split(/[\s]+/) 

["foo", "bar", "zap-foo", "baz"] 

वापस जाने के लिए लेकिन जब मैं यह है कि यह इस तरह के लिए अल्पविराम शामिल कर ...

["foo", "bar,", "zap-foo,", "baz"] 

उत्तर

29

"foo bar, zap-foo, baz".split(/[\s,]+/)

+1

'[" foo "," बार "," जैप-foo "," baz "] 'आउटपुट है, लेकिन क्या हम ** ** ** {"foo bar"] '' ["foo" और "bar"] ' – carbonr

5

आप उन वर्णों को विभाजित कर सकते हैं जो हाइफ़न या शब्द वर्ण नहीं हैं:

"foo bar, zap-foo, baz".split(/[^\w-]+/) 

या आप केवल Ocson has provided जैसे वर्ण वर्ग का उपयोग करके व्हाइटस्पेस और कॉमा पर विभाजित हो सकते हैं।

2

या आप विभाजक के बारे में वास्तव में स्पष्ट होना चाहते हैं:

"foo bar, zap-foo, baz".split(/ |, |,/) 

=> ["foo", "bar", "zap-foo", "baz"] 
2
"foo bar, zap-foo, baz".split(/[\s.,]+/) 
+0

" के रूप में उपयोग नहीं कर सकते हैं – Amit

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

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