2011-07-16 6 views
5

उदाहरण:मैच स्ट्रिंग regex के लिए कैसे एसक्यूएल शैली के साथ भाग निकले?

"""Romeo and Juliet""" 
'another string that is quoted with '' single quotes' 

समस्या स्ट्रिंग db उस में भी बचने के लिए इस्तेमाल किया वर्ण हो कि कर सकते हैं आरंभ और समाप्ति है, इसलिए regex दिखना चाहिए अगर दिए गए चार अजीब लंबाई के अनुक्रम कि है 1,3 में इस्तेमाल किया जाता है , 5 ... मिलान किए गए स्ट्रिंग के अंत में

+0

क्या डेटाबेस के लिए? एसक्यूएल सर्वर CLR बिना regex का समर्थन नहीं करता (2005+), 10 ग्राम पर Oracle समर्थन शुरू होता है ... –

उत्तर

7

इस regex का प्रयास करें। दोहरे उद्धरण चिह्नों के लिए एक ही है, यानी पूरा regex:

'(?:[^']|'')*'|"(?:[^"]|"")*" 

स्ट्रिंग hello 'my ''beautiful''' 'world'! """Romeo and Juliet""" में यह मिलेगा:

  1. 'my ''beautiful'''
  2. 'world'
  3. """Romeo and Juliet"""
-1

जहां आपकी स्ट्रिंग में आपके एसक्यूएल में समस्याएं उत्पन्न होती हैं (या शामिल हो सकती हैं), आपको हमेशा भागना चाहिए।

आप MySQL डेटाबेस के साथ PHP का उपयोग कर रहे हैं, का उपयोग mysql_real_escape_string($text); (docs)

अन्य डेटाबेस और भाषाओं के लिए, यदि आप अपने विशिष्ट प्रयोजनों के लिए जाँच करने के लिए होगा, लेकिन वहाँ एक मौजूदा विधि होने की संभावना है। एकल उद्धरण के लिए '(?:[^']|'')*':

+1

मैं इन तार से बचने के लिए नहीं करना चाहते, मैं पहले से ही उन्हें बच गए। मैं एसक्यूएल आदेश से इन बच गए स्ट्रिंग regex का उपयोग कर बाहर मछली करना चाहते हैं। – rsk82

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