/ / PHP - एक से अधिक पूंजी पत्र के लिए Regex? - php, regex, preg-match

PHP - एक से अधिक पूंजी पत्र के लिए Regex? - PHP, regex, preg-match

मैं एक PHP स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो सभी को ढूंढती हैएक सूची या एक पैराग्राफ में शब्द जिनमें एक से अधिक बड़े अक्षर हैं - या कम से कम 1 अक्षर और 1 नंबर का मिश्रण। मुझे एक कैपिटल लेटर मिल सकता है, लेकिन एक शब्द में 2 कैपिटल लेटर एक मुद्दा है।

धन्यवाद

उत्तर:

जवाब के लिए 0 № 1

मुझे उम्मीद है कि मुझे आपका सवाल सही लगा। ये नियमित अभिव्यक्तियाँ उन सभी शब्दों से मेल खाती हैं जिनमें कम से कम 2 पूँजी अक्षर होते हैं या जिनमें कम से कम 1 अक्षर + 1 संख्या (उदा। हेल्लो, हेलो, हैलो 1, हैलो 2, आदि)। यह अंतरिक्ष को विभाजक के रूप में उपयोग करता है इसलिए यह विराम चिह्न के साथ विफल हो सकता है, जिसमें अल्पविराम, अंक और मैचों में अन्य चीजें शामिल हैं।

$text = "Text";
preg_match_all("#(?<= )([^ ]*p{Lu}[^ ]*p{Lu}[^ ]*(?= )|[^ ]*p{L}[^ ]*p{N}[^ ]*|[^ ]*p{N}[^ ]*p{L}[^ ]*)(?= )#u", $text, $matches);
print_r($matches[0]);

(स्पष्टीकरण: यह हर उस शब्द से मेल खाता है जो पहले और उसके बाद एक स्थान (लेकिन डॉन "t उन्हें मैच में शामिल करता है), जिसमें कुछ ऐसा है जो" 0, 1 या अधिक बार दोहराया नहीं गया है, एक कैपिटल लेटर, फिर से एक गैर-स्थान। बार-बार 0, 1 या अधिक बार, फिर से एक कैपिटल लेटर और फिर से कुछ ऐसा कि "सा नॉन-स्पेस, या वैसा ही, लेकिन कैपिटल लेटर्स की जगह आपके पास एक लेटर और एक नंबर, या एक नंबर और एक लेटर)

इस का उपयोग करने के लिए आप की जरूरत है PHP > 5.1.0। फायदा यह है कि यह सभी से मेल खाता हैयूनिकोड वर्ण जिन्हें अक्षर या संख्या माना जाता है, न कि केवल ASCII। यदि आपको इसकी आवश्यकता नहीं है, या PHP का एक छोटा संस्करण है, तो आप ASCII संस्करण का उपयोग कर सकते हैं:

$text = "Text";
preg_match_all("#(?<= )([^ ]*[A-Z][^ ]*[A-Z][^ ]*(?= )|[^ ]*[A-Za-z][^ ]*[0-9][^ ]*|[^ ]*[0-9][^ ]*[A-Za-z][^ ]*)(?= )#", $text, $matches);
print_r($matches[0]);

जवाब के लिए 0 № 2

निष्कलंक, लेकिन सामान्य सही दिशा में:

[a-z]*[A-Z]+[a-z]*[A-Z]+[a-z]*s

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