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.