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

आप mysql के लिए regexp का उपयोग करके अक्षरों की संख्या या विषम संख्याओं का मिलान कैसे करते हैं?

A की सम संख्या को (AA)+ . के रूप में व्यक्त किया जा सकता है (AA . का एक या अधिक उदाहरण; तो यह एए, एएएए, एएएएएएएए ...) से मेल खाएगा। Gs की एक विषम संख्या को G(GG)* . के रूप में व्यक्त किया जा सकता है (एक G उसके बाद GG . के शून्य या अधिक उदाहरण आते हैं , ताकि वह G, GGG, GGGGG...) से मेल खा सके।

इसे एक साथ रखें और आपको मिल गया है:

/(AA)+G(GG)*TC/

हालांकि, चूंकि रेगेक्स इंजन जितना संभव हो उतना मिलान करने का प्रयास करेंगे, यह अभिव्यक्ति वास्तव में AAAGGGTC के एक विकल्प से मेल खाएगी। (यानी AAGGGTC )! इसे रोकने के लिए, आप नकारात्मक लुकबैक का उपयोग कर सकते हैं। यह सुनिश्चित करने के लिए कि पहले A . से पहले वर्ण दूसरा A नहीं है :

/(?<!A)(AA)+G(GG)*TC/

...सिवाय इसके कि MySQL उनके रेगेक्स में लुकअराउंड का समर्थन नहीं करता है।

इसके बजाय आप यह निर्दिष्ट कर सकते हैं कि पैटर्न या तो स्ट्रिंग की शुरुआत में शुरू होता है (anchored द्वारा ^ ), या किसी ऐसे वर्ण से पहले है जो A नहीं है:

/(^|[^A])(AA)+G(GG)*TC/

लेकिन ध्यान दें कि यदि स्ट्रिंग की शुरुआत में पैटर्न नहीं मिलता है तो इस पैटर्न के साथ एक अतिरिक्त वर्ण कैप्चर किया जाएगा, इसलिए यदि यह ए नहीं है तो आपको पहले वर्ण को काटना होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाग्रिडव्यू से MySQL डेटाबेस में मान डालने का सबसे तेज़ तरीका क्या है?

  2. Zend-framework का उपयोग करके शामिल होने के साथ अपडेट करें

  3. मैं MySQL का वर्तमान समय क्षेत्र कैसे प्राप्त करूं?

  4. सबक्वेरी में NOT IN NULL मानों के साथ कैसे काम करता है?

  5. SQLite3 (या सामान्य SQL) एक क्वेरी परिणाम की nth पंक्ति को पुनः प्राप्त करता है