2012-04-17 11 views
12

मैं थोड़ी देर के लिए यह काम करने की कोशिश कर रहा हूं लेकिन व्यर्थ में। मैं अगर एक स्ट्रिंग कम से कम एक संख्या और के बीच प्रतीकों में से कम से कम एक है की जाँच करने के लिए एक php regex बनाना चाहते हैं (_- + = * &)"वर्ण वर्ग में क्रम से बाहर श्रेणी"?

यह मेरी regex

$result = preg_match('/^(?=.*\d)(?=.*[_-+=*&]).{3,}$/',$pass); 

मैं मिलता है निम्नलिखित त्रुटि चेतावनी: preg_match() [function.preg-match]: संकलन विफल: लाइन 8

पर किसी भी मदद से myfile.php में ऑफ़सेट 17 में वर्ण वर्ग में क्रम से बाहर श्रेणी:

+3

संदर्भ के लिए: "रेगेक्स" "नियमित अभिव्यक्ति" के लिए छोटा है। "नियमित अभिव्यक्ति अभिव्यक्ति" के लिए "regex अभिव्यक्ति" छोटा बनाना। :) – cHao

+2

'_- +' गलत है। एक वर्ण वर्ग में '-' क्या करता है (' [..] ')? –

+2

आगे @ pst की टिप्पणी के लिए: '_- +' में '-' '17 वां वर्ण है। – sberry

उत्तर

24

- जरूरतों भाग निकले जा करने के लिए, या [...] सूची की शुरुआत/अंत में रखा:

$result = preg_match('/^(?=.*\d)(?=.*[-_+=*&]).{3,}$/',$pass); 

आप नहीं करते हैं, - रेंज ऑपरेटर के रूप में व्याख्या की गई है और अगर x > y[x-y] में आपको मिल वह त्रुटि

+0

मेरे जीवन को बचाया। धन्यवाद। एक महान दिन है दोस्तों .. सभी को धन्यवाद। – zed

+0

@zed: आपका स्वागत है। :) –

संबंधित मुद्दे