आम तौर पर, और डिफ़ॉल्ट सेटिंग के साथ, ^
और $
एंकर के एक अच्छा तरीका है यह सुनिश्चित करना कि एक रेगेक्स एक संपूर्ण स्ट्रिंग से मेल खाता है।
कुछ चेतावनियां, हालांकि:
आप अपने regex में प्रत्यावर्तन है, तो ^
और $
साथ इसके आसपास से पहले एक गैर पर कब्जा समूह में अपने रेगुलर एक्सप्रेशन से संलग्न करना न भूलें:
^foo|bar$
है जाहिर है
^(?:foo|bar)$
इसके अलावा, ^
और $
डिब्बे से अलग स्ट्रिंग के प्रारंभ/समाप्ति के बजाय लाइन का प्रारंभ/अंत लें (यदि कुछ विकल्प सेट हैं। नियमित रूप से अभिव्यक्तियों का समर्थन करने वाले पाठ संपादकों में, यह आमतौर पर डिफ़ॉल्ट व्यवहार होता है। कुछ भाषाओं में, विशेष रूप से रूबी, इस व्यवहार को भी बंद नहीं किया जा सकता है। स्ट्रिंग के शुरू में
\A
मैचों:
इसलिए एंकर कि पूरी स्ट्रिंग की शुरुआत/अंत में ही मैच की गारंटी है का एक और सेट है।
\Z
स्ट्रिंग के अंत में या अंतिम लाइन ब्रेक से पहले मैच।
\z
स्ट्रिंग के बहुत अंत में मैच।
लेकिन सभी भाषाएं इन एंकरों, विशेष रूप से जावास्क्रिप्ट का समर्थन नहीं करती हैं।
स्रोत
2010-11-08 12:18:32
क्यों तुम कुछ है कि एक साधारण 'string.Contains' के लिए काम करेंगे के लिए एक regex की जरूरत है? – Oded
कारण मैं एक regex का उपयोग करने की जरूरत है कि मैं MongoDB में एक खोज के लिए यह प्रयोग कर रहा हूँ और मैं की जरूरत है यह केस संवेदी है जो केवल एक regex – Micah
क्यों करने के लिए (ऑन-मक्खी) डाटाबेस डेटा परिवर्तित नहीं किया जा सकता है होना करने के लिए करने के लिए खोज के लिए लोअरकेस और उपयोगकर्ता लोअर केस स्ट्रिंग? – greenoldman