2009-10-11 17 views
8
$str = "This is a string containing 中文 characters. Some more characters - 中华人民共和国 "; 

मैं इस स्ट्रिंग से चीनी वर्णों का पता कैसे लगा सकता हूं और उस भाग को मुद्रित करता हूं जो पहले अक्षर से शुरू होता है और "-" के साथ समाप्त होता है? (यह "中文 वर्ण होगा। कुछ और वर्ण -")।स्ट्रिंग में चीनी (मल्टीबाइट) वर्ण का पता लगाएं

धन्यवाद!

उत्तर

9

मैं इस समस्या का समाधान कर लिया है preg_match और नियमित अभिव्यक्ति का उपयोग करते हुए:

$str = "This is a string containing 中文 characters. Some more characters - 中华人民共和国 "; 

preg_match(/[\x{4e00}-\x{9fa5}]+.*\-/u, $str, $matches); 
+0

इसके लिए धन्यवाद ... उत्सुक, \ x {यूनिकोड #} दस्तावेज का उपयोग करने की क्षमता कहां है? – philfreo

+1

@philfreo: यह यहां है: http://www.php.net/manual/en/regexp.reference.escape.php – Savageman

0

क्या PHP इसे यूनिकोड के रूप में संग्रहीत कर रहा है? यदि ऐसा है, तो सबसे खराब स्थिति में आप स्ट्रिंग, चरित्र द्वारा चरित्र के माध्यम से कदम उठा सकते हैं, जब तक कि आप चीनी सीमा के भीतर उनको हिट न करें।

इस बाहर की जाँच भी PHP: Unicode - Manual

+0

@Josh - अगर आप को बढ़ावा देने के सुझाव का पालन करें, यह भी करने के लिए VonC के जवाब को देखने के लिए पसंद कर सकते हैं करने के लिए यह प्रश्न: http://stackoverflow.com/questions/1366068/whats-the-complete-range-for-chinese-characters-in-unicode –

+0

@boost, हाँ, php यूनिकोड में स्ट्रिंग को संग्रहीत कर रहा है। लेकिन मैं इसे कैसे पूरा करूं? मैं PHP में बहुत अच्छा नहीं हूँ। @ जेवी, धन्यवाद, मैं इसे देख लूंगा। –

+0

यदि आप इसे एनसीआर फॉर्म में परिवर्तित नहीं करते हैं, तो लेन-देन के दौरान पात्रों को भ्रष्ट करने का मौका होता है। – Raptor

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