2011-02-06 11 views
6

मैं एक ISBN मिलान के लिए निम्नलिखित एसक्यूएल regex पैटर्न बनाया: एसक्यूएल रेगुलर एक्सप्रेशन

CREATE RULE ISBN_Rule AS @value LIKE 'ISBN\x20(?=.{13}$)\d{1,5}([-])\d{1,7}\1\d{1,6}\1(\d|X)$' 

मैं परीक्षण डेटा के रूप में निम्न मान का इस्तेमाल किया; हालांकि, डेटा प्रतिबद्ध नहीं किया जा रहा है:

ISBN 0 93028 923 4 | ISBN 1-56389-668-0 | ISBN 1-56389-016-X 

मैं कहाँ गलत हूं?

+0

जो आरडीबीएमएस:

आप अलग अलग आई 10 और 13 प्रारूपों

ऊपर तार के लिए से निपटने के लिए कुछ अन्य रैंकों की आवश्यकता होगी? .... –

+0

माइक्रोसॉफ्ट एसक्यूएल सर्वर 2005 – Sudantha

उत्तर

6

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

LIKE 'ISBN [0-9][ -][0-9][0-9][0-9][0-9][0-9][ -][0-9][0-9][0-9][ -][0-9X]' 
+0

आईएसबीएन प्रारूप आपके पास जो कुछ है उससे कहीं अधिक बहुमुखी है। विकिपीडिया देखें। यह RegEx पैटर्न के पास कहीं भी नहीं है। – RichardTheKiwi

+0

धन्यवाद यह मेरे लिए काम किया! – Sudantha

+0

@ सुधंथा: मेरा समाधान केवल एक संकीर्ण मामले को संबोधित करता है। फिर भी आपका धन्यवाद। – gbn

4

SQL सर्वर 2005 बॉक्स से बाहर REGEX अभिव्यक्तियों का समर्थन नहीं करता है, तो आपको उस यूडीएफ के माध्यम से कार्यक्षमता प्रदान करने के लिए ओएलई ऑटोमेशन या सीएलआर की आवश्यकता होगी।

एकमात्र समर्थित वाइल्डकार्ड% (कोई भी) और _ (एक), और चरित्र श्रेणी (या अस्वीकरण) मिलान []] []] का उपयोग कर मिलान करते हैं। तो आपकी अभिव्यक्ति

'ISBN\x20(?=.{13}$)\d{1,5}([- ])\d{1,7}\1\d{1,6}\1(\d|X)$' 

सीमा के साथ बहुत अजीब कुछ मतलब है [-] और बाकी सब कुछ शाब्दिक है।

+0

मैं पहले बॉक्स के बाहर रेगेक्स अभिव्यक्ति का उपयोग कर रहा था: -s – Sudantha

+0

@ सुधंथा: पूर्ण रेगेक्स नहीं, केवल सीमित समर्थन LIKE और PATINDEX समर्थन। मैंने डाउनवोट नहीं किया - यह वास्तव में मेरा उपरांत था। –

1

यदि यह विभाजित है। और व्हाइटस्पेस को स्ट्रिप नहीं करता है, इसकी संभावना शायद आईएसबीएन और/या बाद में (\ d | X) $ .. मुझे संदेह है कि यह समस्या है, लेकिन [-] हो सकता है [-]

संपादित करें: ठीक है, जब आप regex lib/control प्राप्त करते हैं तो इसे ध्यान में रखें।

6

SQL सर्वर में LIKE ऑपरेटर एक रेगेक्स ऑपरेटर नहीं है। आप कुछ जटिल पैटर्न मिलान कर सकते हैं, लेकिन यह सामान्य regex वाक्यविन्यास नहीं है।

http://msdn.microsoft.com/en-us/library/ms179859.aspx

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