2011-05-09 10 views
5

मैं निम्नलिखित स्ट्रिंग हैनिकालें वर्ग कोष्ठक और एकल उद्धरण काम नहीं कर रहा regex

[ग्राहकआईडी] = 'A99999999'

मैं वर्ग कोष्ठक और एकल उद्धरण दूर करने के लिए निम्नलिखित कोशिश कर रहा हूँ

Regex.Replace(sql, "/[\[\]']+/g", " ") 

लेकिन यह काम नहीं कर रहा है। मैं एक ही परिणाम प्राप्त कर रहा हूं

नोट: एसक्यूएल उपरोक्त स्ट्रिंग को धारण करने वाला चर है।

मैं परिणाम

ग्राहकआईडी = A99999999

उत्तर

14

\[ ऐसा नहीं करता जो आपको लगता है कि ऐसा करता है। न ही Regex पर्ल में समान है। ऐसा करें:

Regex.Replace(sql, @"[\[\]']+", ""); 
1

होना चाहते हैं तो यह आपके लिए क्या देख रहे हैं? ['\\/]

यह किसी भी एकल चरित्र से मेल खाना चाहिए जो एक स्लैश या सिंगल कोट है।

0

आप स्ट्रिंग विभाजन का उपयोग कर सकते हैं और नीचे की तरह शामिल हो:

 string sql = "[custID] = 'A99999999'"; 
     var correctedString = string.Join("",sql.Split(new char[] {'[', ']', '\''})); 
     Console.Write(correctedString); 

आप regex उपयोग [\[\]'] उपयोग करने के लिए उन बदलना चाहते हैं।

1

मुझे लगता है कि आप Regex.Replace(sql, @"[\[\]']", " ") देख रहे हैं; @ एक स्ट्रिंग पेश करता है जहां आपको कोई भागने की आवश्यकता नहीं होती है, और Regex.Replace सभी मैचों को प्रतिस्थापित करता है, इसलिए g ध्वज की आवश्यकता नहीं है - मुझे लगता है कि आपका रेगेक्स वाक्यविन्यास यहां समर्थित नहीं है।

1

आप इस का उपयोग कर सकते हैं:

Regex.Replace(sql, "[][']", "") 

आप सोच रहे हैं कि कैसे है कि काम करता है, ] सही [ के बाद बंद करने के रूप में इलाज नहीं है, लेकिन के रूप में शाब्दिक वर्ण।

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