2015-12-08 8 views
17

रेगेक्स अभिव्यक्ति [[: अल्फा:]] क्यों नोटपैड ++ में चीनी शब्दों से मेल खाता है? उदाहरण के लिए,, 中文नोटपैड ++ में [[: अल्फा:]] चीनी शब्दों से मेल खाता है क्यों?

नोटपैड के प्रलेखन ++

अल्फा के अनुसार: ASCII अक्षरों

चीनी शब्दों ASCII अक्षरों नहीं हैं, तो क्यों regex अभिव्यक्ति उनकी बराबरी करता है?

+0

आप उस कोड का उपयोग कर रहे हैं जहां उसे '中文' नहीं मिला है? आपको 'यू' संशोधक की आवश्यकता हो सकती है। https://regex101.com/r/zT4mO1/1 – chris85

+0

@ chris85 ओह, तो यह चीनी शब्दों से मेल खाने के लिए डिज़ाइन किया गया है? लेकिन मैंने सोचा [[: अल्फा:]] केवल एएससीआईआई अक्षरों से मेल खाता है। चीनी शब्द ASCII पत्र हैं ?? – user15964

+0

http://www.regular-expressions.info/posixbrackets.html पर एक नज़र डालें। यदि आपके पास केवल एसीआईआई के लिए समर्थन है तो यह केवल एसीआईआई होगा। – chris85

उत्तर

18

[:alpha:] कक्षा आमतौर पर वर्णमाला वर्णों से मेल खाती है। आपके द्वारा उपयोग किए जा रहे एन्कोडिंग के आधार पर यह एएससीआईआई अक्षरों से कहीं अधिक होगा।

जबकि Notepad++ documentation "ASCII अक्षरों" राज्य करता है, यह भी इंगित करता है कि Boost C++ Regex library का उपयोग करके regexes लागू किए गए हैं। दस्तावेज़ीकरण पुष्टि करता है कि [:alpha:]has the standard, broader meaning in this library

यह नोटपैड ++ दस्तावेज़ में केवल एक गलती प्रतीत होता है।

यदि आपको ASCII अक्षरों से मिलान करने की आवश्यकता है, तो मैं [a-zA-Z] जैसे शुरुआती बिंदु के रूप में कुछ उपयोग करूंगा।

+0

तो चीनी शब्द वर्णमाला कैरेक्टर हैं? मुझे कहना होगा कि यह एक्सटेंशन सभी – user15964

+16

पर उपयोगी नहीं है क्योंकि यह * आपका * वर्णमाला नहीं है, इसका मतलब यह नहीं है कि यह वर्णमाला का हिस्सा नहीं है! – Troyseph

+3

@ ट्रॉयसेफ जबकि मैं आपसे सहमत हूं, तकनीकी रूप से चीनी भाषा में वर्णमाला नहीं है; यह एक तर्कसंगत लेखन प्रणाली है जिसमें निर्धारक के साथ ध्वन्यात्मक तत्वों की पूरक सूची है। = पी – That1Guy

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