मैं एक स्ट्रिंग जहां सभी पात्रों अपर केस अक्षर हैं के लिए जाँच करने के लिए निम्न कोड का उपयोग कर रहा:कैसे निर्धारित करें कि एक गैर-अंग्रेजी स्ट्रिंग ऊपरी मामले में है या नहीं?
if (preg_match('/^[\p{Lu}]+$/', $word)) {
यह अंग्रेजी के लिए अच्छा काम करता है, लेकिन विफल रहता लहजे, रूस पत्र, आदि के साथ पत्र का पता लगाने के क्या \ p {Lu} सभी भाषाओं के लिए काम करना चाहिए? क्या कोई बेहतर दृष्टिकोण है?
मैंने हमेशा सोचा कि '\ p {Lu} 'को सभी यूनिकोड-समर्थित वर्णमाला के लिए काम करना चाहिए था। क्या यह किसी भी सिरिलिक अक्षरों को अपरकेस के रूप में पहचानने में असफल रहा है? –
ठीक है, यह पर्ल में ठीक काम करता है क्योंकि डेटा बाइट डेटा के बजाय डेटा डेटा डेटा है, या यदि यह पैटर्न में यूनिकोड प्रॉपर्टी देखता है तो पर्ल स्वचालित रूप से '/ u' चालू हो जाता है। अफसोस की बात यह प्रतीत होती है कि PHP डिफ़ॉल्ट रूप से यूनिकोड में पीसीआरई का उपयोग नहीं कर रहा है। क्या आप कहीं और, जैसे आप पर्ल में कर सकते हैं? बीटीडब्लू, आप अभी भी यूनिकोड के साथ रेंज में सावधान रहना चाहेंगे यदि यह मामला असंवेदनशील रूप से मेल खाता है, जैसा कि [हमने हाल ही में एक बग तय किया है] (http://www.perlmonks.org/?node_id=900689) उससे संबंधित है। मैंने अभी तक पीसीआरई के साथ समकक्ष परीक्षण नहीं किया है। – tchrist