2009-03-30 25 views
5

के आधार पर स्ट्रिंग मैं सी # कि लग रहा है में एक स्ट्रिंगविभाजन regexp

एक तरह विभाजित करना चाहते हैं "c: डी"

तो उसके एवज में सरणी होगा कि

सरणी [0 ] = "एक"

सरणी [1] = "बी"

सरणी [2] = "c: डी"

क्या regexp क्या मैं आवश्यक परिणाम प्राप्त करने के लिए उपयोग करता हूं।

कई धन्यवाद

उत्तर

4

सीमांकक पेट के खाली स्थान के द्वारा अलग किया जाता है, तो आप खाली स्थान के मैच के लिए \ s का उपयोग कर सकते हैं:

string example = "a : b : \"c:d\""; 
string[] splits = Regex.Split(example, @"\s:\s"); 
+0

हूप्स, मुझे लगता है कि यह विभाजन "सी: डी" के आसपास उद्धरण बनाए रखेंगे ... –

+0

धन्यवाद एंडी, यह एक बहुत बड़ा सौदा करने में मदद करता है। –

1

इस के लिए RegexBuddy में काम करने लगता है मुझे

(\w+)\s:\s(\w+)\s:\s"(\w+:\w+)"

इनपुट

एक: ख: "c: डी"

का मिलान नहीं हुआ समूह

  1. एक
  2. c: डी

हमेशा सावधान रहना होगा और समझते हैं कि क्या वास्तव में regex करता है। अंधेरे की प्रतिलिपि न लें। यह शब्द वर्ण \w, रिक्त स्थान \s आदि से मेल खाता है, इस पर विचार करें कि वास्तव में आपके इनपुट में कौन सा डेटा होगा!

+0

बढ़िया है, अब वह है * दो * समस्याओं, पी –

+0

मैं 99 समस्याओं लेकिन एक regex ऐन 'मिला सुर। –

+0

मुझे लगता है कि ..smth जैसे: (\ w +) \ s: |: \ s "(\ w +: \ w +)" .. इस प्रकार का – 0x49D1