आम तौर पर, और डिफ़ॉल्ट सेटिंग्स के साथ, ^और $एंकर यह सुनिश्चित करने का एक अच्छा तरीका है कि एक रेगेक्स पूरे स्ट्रिंग से मेल खाता है।
कुछ चेतावनी, हालांकि:
यदि आपके पास अपने रेगेक्स में प्रत्यावर्तन है, तो अपने रेगेक्स को गैर-कैप्चरिंग समूह में संलग्न करें ^और उसके साथ आस-पास से पहले $:
^foo|bar$
से अलग है
^(?:foo|bar)$
इसके अलावा, ^और $एक अलग अर्थ (के अंत शुरू / ले जा सकते हैं लाइन के प्रारंभ / समाप्ति के बजाय स्ट्रिंग ) कुछ विकल्प सेट हैं। पाठ संपादकों में जो नियमित अभिव्यक्ति का समर्थन करते हैं, यह आमतौर पर डिफ़ॉल्ट व्यवहार होता है। कुछ भाषाओं में, विशेष रूप से रूबी, इस व्यवहार को भी बंद नहीं किया जा सकता है।
इसलिए एंकर का एक और सेट है जो केवल पूरे स्ट्रिंग के प्रारंभ / अंत में मैच करने की गारंटी देता है:
\A स्ट्रिंग की शुरुआत में मेल खाता है।
\Z स्ट्रिंग के अंत में या अंतिम पंक्ति विराम से पहले मेल खाता है।
\z स्ट्रिंग के बहुत अंत में मेल खाता है।
लेकिन सभी भाषाएं इन एंकरों का समर्थन नहीं करती हैं, विशेष रूप से जावास्क्रिप्ट।
string.Containsकाम करेगा?