मैं अपने कोड, यूआरएल के आकार से मिलान करने के लिए है, जिसमें एक regex हो गया और त्रुटि फेंक दिया "वर्ण वर्ग त्रुटि में खाली रेंज":नियमित अभिव्यक्ति
/^(http|https):\/\/([\w-]+\.)+[\w-]+([\w- .\/?%&=]*)?$/
त्रुटि थी "वर्ण वर्ग त्रुटि में खाली रेंज" । मैंने पाया कि इसका कारण ([\w- .\/?%&=]*)?
भाग में है। रुबी -
\w- .
में एक शाब्दिक -
की बजाय सीमा के लिए ऑपरेटर के रूप में पहचानने लगता है। डैश में भागने के बाद, समस्या हल हो गई थी।
लेकिन मूल नियमित अभिव्यक्ति मेरे सहकर्मियों की मशीनों पर अच्छी तरह से चल रही थी। हम ओएसएक्स, रेल और रूबी के समान संस्करण का उपयोग करते हैं: रूबी संस्करण रूबी 1.9.3 पी 1 9 4 है, रेल 3.1.6 है और ओएसएक्स 10.7.5 है। और हमारे हेरोकू सर्वर पर कोड तैनात करने के बाद, सब ठीक काम किया। इस रेगेक्स के संबंध में केवल मेरे पर्यावरण में त्रुटि क्यों हुई? रुबी रेगेक्स व्याख्यान का तंत्र क्या है?
मैं नहीं जानता कि क्यों यह और एक अन्य पर नहीं एक मशीन पर काम किया है, लेकिन चरित्र कक्षाओं में हाइफ़न चाहिए हमेशा या तो बच निकले या चरित्र वर्ग की शुरुआत या अंत में। अन्यथा इंजन इसे एक सीमा बनाने का फैसला कर सकता है। हाइफ़ेंस को अन्य श्रेणियों के बाद भी अनुमति दी जाती है (जैसे '[ए-जेड -_]') लेकिन यह भी निराश है, मैं भी कहूंगा। –
रूबी का क्या संस्करण? क्या यह एक मौजूदा संस्करण है जिसमें वैकल्पिक रेगेक्स समर्थन संकलित है? कम से कम संस्करण, संभवतः ओएस आदि के बारे में कोई विवरण प्रदान किए बिना, मदद करना असंभव है। –
आपकी मदद के लिए धन्यवाद दोस्तों। डेव करने के लिए: रूबी संस्करण रूबी 1.9.3 पी 1 9 4 है, रेल 3.1.6 है और ओएसएक्स 10.7.5 है। मुझे यकीन नहीं है कि मेरी रूबी अन्य वैकल्पिक regex समर्थन के साथ आता है। क्या आप अपने विचार साझा कर सकते हैं? – Steve