PHP नियमित अभिव्यक्ति: कोई अंतिम सीमांकक '^' नहीं मिला


103

मुझे नियमित अभिव्यक्तियों से थोड़ी परेशानी हो रही है।

यह मेरा कोड है

$pattern = "^([0-9]+)$";

if (preg_match($pattern, $input))
   echo "yes";
else
   echo "nope";

मैं इसे चलाता हूं और प्राप्त करता हूं:

चेतावनी: preg_match () [function.preg-match]: कोई अंतिम सीमांकक '^' नहीं मिला


आप T-Regx लाइब्रेरी का उपयोग कर सकते हैं , जिसमें सीमांकक की आवश्यकता नहीं है।
— डैनॉन

जवाबों:


158

PHP रेगेक्स स्ट्रिंग्स को सीमांकक की आवश्यकता है। प्रयत्न:

$numpattern="/^([0-9]+)$/";

यह भी ध्यान दें कि आपके पास कम केस ओ है, शून्य नहीं। इसके अलावा, यदि आप केवल सत्यापन कर रहे हैं, तो आपको कैप्चरिंग समूह की आवश्यकता नहीं है, और रेगेक्स को सरल बना सकते हैं /^\d+$/।

उदाहरण: http://ideone.com/Ec3zh

इसे भी देखें: PHP - Delimiters


2
उन लोगों के लिए जो लिंक किए गए सामग्रियों, उपयोग [और ]सीमांकक को नहीं पढ़ते हैं , अन्यथा आप पैटर्न के साथ संघर्ष में भाग लेते हैं।
— ग्रीनहोल्डमैन


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.