2011-10-03 19 views
8

मैं इस नियमित अभिव्यक्ति हैनियमित अभिव्यक्ति नहीं वर्ण

([A-Z],)* 

जो (अल्पविराम के बाद एक स्थान के साथ) test, की तरह कुछ

मैं regex अभिव्यक्ति कैसे बदलने के लिए मैच चाहिए ताकि अगर देखते हैं अंतरिक्ष के बाद किसी भी अक्षर तो यह मेल नहीं खाता है। उदाहरण के लिए अगर मैं था:

test, test 

मैं

([A-Z], ~[A-Z])* 

चीयर्स

के लिए इसी तरह कुछ करने के लिए देख रहा हूँ
+4

आपको हमेशा यह निर्दिष्ट करना चाहिए कि आप किस भाषा का उपयोग कर रहे हैं से Regex। चारों ओर कई अलग रेगेक्स "कार्यान्वयन" हैं। – xanatos

उत्तर

16

उपयोग निम्नलिखित रेगुलर एक्सप्रेशन:

^[A-Za-z]*, $ 

स्पष्टीकरण:

  • ^ स्ट्रिंग की शुरुआत से मेल खाता है।
  • [A-Za-z]* 0 या अधिक अक्षर (केस-असंवेदनशील) से मेल खाता है - *+ के साथ 1 या अधिक अक्षरों की आवश्यकता के लिए प्रतिस्थापित करें।
  • , एक स्थान के बाद एक अल्पविराम से मेल खाता है।
  • $ स्ट्रिंग के अंत से मेल खाता है, इसलिए यदि कॉमा और स्पेस के बाद कुछ भी है तो मैच विफल हो जाएगा।

के रूप में उल्लेख किया गया है, तो आप कौन-सी भाषा का उपयोग कर रहे हैं जब आप एक Regex सवाल पूछने के बाद से वहाँ कई अलग अलग किस्में अपने स्वयं के idiosyncrasies होती है निर्दिष्ट करना चाहिए।

0

मुझे यकीन नहीं है कि आप कौन सी रेगेक्स इंजन/भाषा का उपयोग कर रहे हैं, लेकिन अक्सर नकारात्मक वर्ण समूह [^a-z] जैसे कुछ "चरित्र के अलावा सबकुछ" होता है।

1
^([A-Z]+,)?$ 

मेरा और डोनट के बीच अंतर यह है कि वह , से मेल खाते हैं और रिक्त स्ट्रिंग के लिए असफल हो जायेगी है, मेरा मिलान ख़ाली स्ट्रिंग और , के लिए असफल हो जायेगी। (और यह कि मेरे से अधिक मामला असंवेदनशील है। मेरे साथ आपको अपने रेगेक्स फ़ंक्शन के विकल्पों में केस-असंवेदनशीलता जोड़नी होगी, लेकिन यह आपके उदाहरण की तरह है)

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