Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL REGEXP शब्द सीमाएँ [[:<:]] [[:>:]] और दोहरे उद्धरण

मुझे दस्तावेज़ीकरण उद्धृत करने दें पहला:

दस्तावेज़ीकरण से हम आपकी समस्या के पीछे का कारण देख सकते हैं और यह किसी भी चीज़ से बचने के कारण नहीं है। समस्या यह है कि आप शब्द सीमा से मेल खाने की कोशिश कर रहे हैं [[:<:]] स्ट्रिंग की शुरुआत में जो काम नहीं करेगा क्योंकि एक शब्द सीमा जैसा कि आप दस्तावेज़ीकरण से देख सकते हैं एक शब्द वर्ण को गैर-शब्द वर्ण से अलग करता है, लेकिन आपके मामले में पहला वर्ण एक " जो एक शब्द वर्ण नहीं है इसलिए कोई शब्द सीमा नहीं है, वही अंतिम " . के लिए जाता है और [[:>:]]

इसे काम करने के लिए, आपको अपनी अभिव्यक्ति को थोड़ा इस में बदलना होगा:

"[[:<:]]word[[:>:]]"
 ^^^^^^^    ^^^^^^^

ध्यान दें कि शब्द सीमा एक गैर-शब्द वर्ण को कैसे अलग करती है " एक शब्द वर्ण से w शुरुआत में और एक " d . से स्ट्रिंग के अंत में।

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

([[:<:]]|^)"word"([[:>:]]|$)

यह या तो शुरुआत में एक शब्द सीमा से मेल खाएगा या स्टार्ट-ऑफ-स्ट्रिंग ^ . से मेल खाएगा और शब्द सीमा या अंत-स्ट्रिंग के अंत के लिए भी यही है। मैं वास्तव में आपको उस डेटा का अध्ययन करने की सलाह देता हूं जिसका आप मिलान करने का प्रयास कर रहे हैं और सामान्य पैटर्न की तलाश करें और यदि वे नौकरी के लिए सही उपकरण नहीं हैं तो नियमित अभिव्यक्तियों का उपयोग न करें।

SQL Fiddle Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक SQL क्वेरी के साथ एकाधिक गणना कैसे प्राप्त करें?

  2. MySQL डुअल मास्टर

  3. डेटाबेस, टेबल, कॉलम के संयोजन को कैसे बदलें?

  4. श्रेणियों द्वारा समूहीकृत मानों की संख्या का चयन कैसे करें

  5. प्रविष्टियां कभी नहीं हटाएं? अच्छा विचार? सामान्य?