मैं एक PHP स्क्रिप्ट लिख रहा हूं जो उपयोगकर्ता से नियमित अभिव्यक्ति पैटर्न स्वीकार करता है जिसका उपयोग preg_match() द्वारा किया जाता है। मैं कैसे जांच सकता हूं कि पैटर्न मान्य है?मैं एक अवैध preg_match पैटर्न कैसे पकड़ सकता हूं?
उत्तर
बस इसका परीक्षण करें। preg_match()
पैटर्न FALSE
वापस करेगा यदि पैटर्न मान्य नहीं है।
रिटर्न मान: preg_match() पैटर्न मिलानों की संख्या देता है। यह 0 गुना (कोई मिलान नहीं) या 1 बार होगा क्योंकि preg_match() पहले मैच के बाद खोज करना बंद कर देगा। preg_match_all() इसके विपरीत विषय के अंत तक पहुंचने तक जारी रहेगा। preg_match() त्रुटि उत्पन्न होने पर FALSE लौटाता है।
docs के अनुसार,
() के FALSE देता है यदि कोई त्रुटि हुई।
समस्या यह है कि यह एक चेतावनी भी फेंक देगा।
इससे निपटने का एक तरीका है त्रुटि संदेश के आउटपुट को दबाएं, वापसी मूल्य पकड़ें, और error_get_last()
का उपयोग करके त्रुटि को आउटपुट करें यदि यह गलत था।
$old_error = error_reporting(0); // Turn off error reporting
$match = preg_match(......);
if ($match === false)
{
$error = error_get_last();
echo $error["message"];
}
error_reporting($old_error); // Set error reporting to old level
तरह आप उत्पादन परिवेश में त्रुटि की रिपोर्ट करने बिट की जरूरत नहीं हो सकता है - यह अपने सेटअप पर निर्भर करता है।
if (preg_match($regex, $variable)) {
echo 'Valid';
}
else {
echo 'InValid';
}
लौटाई गई तो त्रुटि क्यों पंजीकृत नहीं होगी, आपको preg_match (...)! == का उपयोग करने के लिए झूठा होना चाहिए क्योंकि यह वैध है लेकिन यह 0 लौटा सकता है – mck89
से मेल नहीं खाते आपको FALSE की तुलना करनी चाहिए: 'अगर (preg_match ($ regex, $ variable)! == गलत) {'। कोई मिलान के साथ पैटर्न वैध हो सकता है। देखें [डॉक्स] (http://nl2.php.net/manual/en/function.preg-match.php) – Lekensteyn
आप प्रतिक्रिया प्राप्त करने के लिए preg_last_error() का उपयोग कर सकते हैं। विस्तार से पेज:
http://php.net/manual/en/function.preg-last-error.php
धन्यवाद!
PHP का उपयोग नहीं करते हैं, preg_match
के सामने पिछड़े स्लैश का उपयोग PHP (5.3+?) के नए संस्करणों में अपवाद फेंकने के लिए करें।
tr{
if (\preg_match($regex, $variable)===false)
echo 'Valid';
else
echo 'InValid';
}
catch(Exception $e) {
echo $e->getMessage(); die;
}
बैकस्लैश केवल वैश्विक नामस्थान को संदर्भित करता है। यह अन्यथा कुछ भी नहीं करता है, त्रुटि व्यवहार को भी नहीं बदलता है। –
- 1. एक अवैध रेगेक्स पैटर्न
- 2. मैं इस preg_match केस असंवेदनशील कैसे बना सकता हूं?
- 3. मैं इवेंट डिस्पैच थ्रेड (ईडीटी) अपवाद कैसे पकड़ सकता हूं?
- 4. मैं ctrl-c ईवेंट कैसे पकड़ सकता हूं? (सी ++)
- 5. मेल() के कारण त्रुटि को मैं कैसे पकड़ सकता हूं?
- 6. मैं थिगिंग पायथन प्रोग्राम में सिगिनट कैसे पकड़ सकता हूं?
- 7. मैं SQL में एक प्रतिस्थापन पैटर्न कैसे बना सकता हूं?
- 8. क्या मैं एक ही पकड़ खंड में एकाधिक जावा अपवादों को पकड़ सकता हूं?
- 9. मैं "पकड़"
- 10. मैं पर्ल में एक कार्प से आउटपुट कैसे पकड़ सकता हूं?
- 11. मैं एक कैच ब्लॉक में सभी प्रकार के अपवाद कैसे पकड़ सकता हूं?
- 12. मैं SQL सर्वर 2005 में एक छंटनी त्रुटि कैसे पकड़ सकता हूं?
- 13. preg_match?
- 14. मैं preg_match से केवल नामित कैप्चर कैसे प्राप्त कर सकता हूं?
- 15. मैं सी # में एक सामान्य अपवाद क्यों नहीं पकड़ सकता?
- 16. मैं एक स्ट्रिंग में एक साधारण पैटर्न की घटनाओं की संख्या कैसे गिन सकता हूं?
- 17. पकड़
- 18. ग्रूवी दिनांक पार्सिंग - एक्स एक अवैध पैटर्न चरित्र
- 19. मैं एक constraintViolationException कैसे बना सकता हूं?
- 20. मैं एक सिम्लिंक कैसे हटा सकता हूं?
- 21. मैं एक तिथि कैसे बढ़ा सकता हूं?
- 22. मैं एक पिक्चरबॉक्स कैसे चुन सकता हूं?
- 23. क्या मैं सी # में एप्लिकेशन लोड के दौरान एक लापता डीएलएल त्रुटि पकड़ सकता हूं?
- 24. आप preg_match कैसे करते हैं जहां पैटर्न एक सरणी है, php में?
- 25. मैं अपने स्थानीय परिवर्तक को कैसे पकड़ सकता हूं और इसे पर्सफोर्स में किसी और को भेज सकता हूं?
- 26. Magento राउटर: मैं सभी यूआरएल में पैरामीटर कैसे पकड़ सकता हूं?
- 27. मैं अपने डेस्कटॉप पर पिक्सेल का रंग कैसे पकड़ सकता हूं? (लिनक्स)
- 28. मैं कैसे बच सकता हूं "अवैध स्तर अपवाद: स्क्रॉलव्यू केवल एक प्रत्यक्ष बच्चा होस्ट कर सकता है"?
- 29. मैं लॉग 4perl लॉग में पर्ल चेतावनियों को कैसे पकड़ सकता हूं?
- 30. मैं आईआईएस 7 में अधिकतम आवंटित कॉन्टेंट लम्बाई को कैसे पकड़ और संभाल सकता हूं?
+1 त्रुटि संदेश आउटपुट दमन का उल्लेख करने के लिए। – Gumbo
आप जानते हैं, '@ ': पी – Artefacto
का उपयोग करने के लिए मना नहीं किया जाना चाहिए' if ($ match === false) ' – webbiedave