regex - रेगेक्स-क्या हाइफ़न बच निकलेगा?




(2)

आम तौर पर आप हमेशा [] मैच सेक्शन में हाइफ़न डाल देंगे। ईजी, किसी भी अल्फान्यूमेरिक से मेल खाने के लिए हाइफ़न (लंबा रास्ता लिखा), आप [-a-zA-Z0-9] उपयोग करेंगे

संभावित डुप्लिकेट:
नियमित अभिव्यक्ति के साथ हाइफ़न कैसे मिलान करें?

हाइफ़ेन रेगेक्स में एक विशेष चरित्र है, उदाहरण के लिए, एक श्रेणी का चयन करने के लिए, मैं कुछ ऐसा कर सकता था:

[0-9A-F]

लेकिन वर्ग के ब्रैकेट के बाहर यह सिर्फ एक नियमित चरित्र सही है? मैंने इसे दो ऑनलाइन रेगेक्स टेस्टर्स पर परीक्षण किया है, और हाइफ़न स्क्वायर ब्रैकेट के बाहर एक सामान्य चरित्र के रूप में काम करते हैं (या यहां तक ​​कि स्क्वायर ब्रैकेट के अंदर भी यदि यह दो अक्षरों के बीच नहीं है - उदाहरण के लिए [-g] मिलान करना प्रतीत होता है - या जी) चाहे वह बच निकला है या नहीं। मुझे इसका जवाब नहीं मिला, लेकिन मैं सोच रहा हूं कि हाइफ़न से बचने के लिए पारंपरिक है या नहीं।

धन्यवाद!


चरित्र वर्गों के बाहर, यह पारंपरिक है कि हाइफ़न से बचें। अगर मैंने एक चरित्र वर्ग के बाहर एक भागने वाले हाइफ़न को देखा, तो यह मुझे सुझाव देगा कि यह किसी ऐसे व्यक्ति द्वारा लिखा गया था जो regexes के साथ बहुत सहज नहीं था।

चरित्र वर्गों के अंदर, मुझे नहीं लगता कि एक तरफ एक तरफ परंपरागत है; मेरे अनुभव में, आमतौर पर बैकस्लैश से बचने के लिए, [-._:] या [._:-] , पहले या आखिरी बार रखना होता है; लेकिन मैंने इसे अक्सर इसके बजाय भाग लिया है, जैसा कि [._\-:] , और मैं इसे एक पारंपरिक नहीं कहूंगा।





regex