एक चरित्र वर्ग [...]
एक -
अंदर विशेष रूप से इलाज किया जाता है (एक सीमा ऑपरेटर के रूप में) अगर यह दोनों पक्षों पर पात्रों से घिरा हुआ है। इसका मतलब है कि यदि आप शुरुआत में या चरित्र वर्ग के अंत में -
शामिल करते हैं तो इसका शाब्दिक रूप से व्यवहार किया जाएगा (गैर-विशेष)।
^[a-z-]+$
या
^[-a-z]+$
-
कि हम जोड़ा इलाज चल रहा है के बाद से सचमुच यह से बचने के लिए कोई जरूरत नहीं है:
तो तुम regex का उपयोग कर सकते हैं। हालांकि यदि आप ऐसा करते हैं तो यह कोई त्रुटि नहीं है।
एक और (कम अनुशंसित) जिस तरह से चरित्र वर्ग में -
शामिल नहीं करने के लिए है:
^(?:[a-z]|-)+$
ध्यान दें कि कोष्ठक |
के रूप में इस मामले में वैकल्पिक नहीं हैं एक बहुत कम पूर्वता, कोष्ठक के साथ ऐसा नहीं है :
^[a-z]|-+$
स्ट्रिंग की शुरुआत और एक या अधिक -
अंत में एक लोअरकेस वर्णमाला से मेल खाएगी।
यह डाउनवॉट किया गया था, लेकिन यह भी काम करता है। मैं हमेशा अंत में डैश डालता हूं। – harpo
यह मेरे लिए काम कर रहा है – daveb
मुझे सच में यकीन नहीं है कि यह मानक regexp वाक्यविन्यास है। मुझे शक नहीं है कि यह काम करता है, लेकिन यह लगभग निश्चित रूप से सबसे अच्छा अभ्यास नहीं है। –