2010-02-24 12 views
16

के साथ सभी टोपियां है आप निर्धारित कर सकते कैसे अगर एक स्ट्रिंग एक नियमित अभिव्यक्ति के साथ सभी बड़े अक्षरों है। इसमें विराम चिह्न और संख्याएं शामिल हो सकती हैं, केवल कोई कम केस अक्षर नहीं।निर्धारित करें यदि स्ट्रिंग नियमित अभिव्यक्ति

+1

शायद एक regex का सबसे अच्छा उपयोग .... –

+3

@Mitch आप उस पर विस्तृत कर सकते हैं? मुझे regex के लिए एक वैध मामला की तरह लग रहा है। – Amarghosh

+0

खाली लाइनों के बारे में कैसे? यहां कुछ जवाब उन्हें अस्वीकार करते हैं, लेकिन यह एक दिलचस्प बढ़त मामला है। – JXG

उत्तर

5

क्यों नहीं सिर्फ अगर (string.toUpperCase() == स्ट्रिंग) का उपयोग करें? ._। इसकी अधिक "सुरुचिपूर्ण" ...
मुझे लगता है कि आप RegExp में मजबूर करने की कोशिश कर रहे हैं, लेकिन जैसा कि किसी और ने कहा है, मुझे नहीं लगता कि यह regexp का सबसे अच्छा उपयोग है ...

+0

उदाहरण के लिए, आप 'grep' के साथ सभी संतोषजनक रेखाओं को निकालने के लिए इसका उपयोग कैसे करते हैं? –

+0

string.toUpperCase() == स्ट्रिंग '@ # $%' जैसे तारों के लिए सच होती है जो आप खोज रहे हैं या नहीं भी हो सकती है। – rvaldron

1

स्ट्रिंग में एक लोअरकेस अक्षर अगर अभिव्यक्ति /[a-z]/ सत्य लौटाती है, तो बस यह चेक करें, अगर यह गलत है तो आपके पास कोई लोअरकेस अक्षर नहीं है।

8

है कि आप की तरह लगता है चाहता हूँ: ^[^a-z]*$

+0

यह केवल लंबाई में बिल्कुल एक वर्ण के तारों से मेल खाता है। –

+0

@ टिम: ओह। धन्यवाद - तय है कि। एक संस्कृति-अज्ञेय समाधान के लिए –

1

सरल होने लगते हैं:

^[^a-z]*$ 
18
m/^[^a-z]*$/ 

गैर-अंग्रेज़ी वर्ण के लिए,

m/^[^\p{Ll}]*$/ 
+1

+1। –

+1

शायद यह ध्यान देने योग्य है कि यह बिना किसी कैप्स के तारों से मेल खाता है, और केवल संख्याएं, या केवल विराम चिह्न, या खाली तार इत्यादि। – Totem

+0

@ टोटेम आप 'm/[a के अलावा उपरोक्त regex को देख सकते हैं -zA-z]/' खाली स्ट्रिंग/बस संख्याओं/बस विराम चिह्न आदि को खत्म करने के लिए ... – OST

0

कैसे (s == uppercase(s)) के बारे में -> स्ट्रिंग सभी कैप्स है?

0
$str="ABCcDEF"; 
if (preg_match ("/[a-z]/",$str)){ 
    echo "Lowercase found\n"; 
} 
0

यदि आप यह सुनिश्चित करने के बाद स्ट्रिंग से किसी अन्य रेगेक्स से मिलान करना चाहते हैं कि कोई कम केस अक्षर नहीं है, तो आप सकारात्मक लुकहेड का उपयोग कर सकते हैं।

^(?=[^a-z]*$)MORE_REGEX$ 

उदाहरण के लिए, यह सुनिश्चित करें कि पहली और आखिरी पात्रों अल्फा-न्यूमेरिक हैं बनाने के लिए:

^(?=[^a-z]*$)[A-Z0-9].*[A-Z0-9]$ 
नहीं
संबंधित मुद्दे