पायथन में एक स्ट्रिंग से गैर-मुद्रण योग्य वर्णों को अलग करना
पर्ल के विपरीत, पायथन में POSIX रेगेक्स कक्षाओं का अभाव है, जिससे इसका पता लगाना चुनौतीपूर्ण हो जाता है और नियमित अभिव्यक्तियों का उपयोग करके गैर-मुद्रण योग्य वर्णों को हटा दें।
तो, आप इसे पायथन में कैसे प्राप्त कर सकते हैं?
एक दृष्टिकोण यूनिकोडडेटा मॉड्यूल का लाभ उठाना है। Unicodedata.category फ़ंक्शन यूनिकोड वर्णों को विभिन्न श्रेणियों में वर्गीकृत करता है। उदाहरण के लिए, Cc (नियंत्रण) के रूप में वर्गीकृत वर्ण गैर-मुद्रण योग्य वर्णों का प्रतिनिधित्व करते हैं।
इस ज्ञान का उपयोग करके, आप एक कस्टम वर्ण वर्ग का निर्माण कर सकते हैं जो सभी नियंत्रण वर्णों से मेल खाता है:
import unicodedata
import re
import sys
all_chars = (chr(i) for i in range(sys.maxunicode))
categories = {'Cc'}
control_chars = ''.join(c for c in all_chars if unicodedata.category(c) in categories)
control_char_re = re.compile('[%s]' % re.escape(control_chars))
def remove_control_chars(s):
return control_char_re.sub('', s)
यह फ़ंक्शन इनपुट स्ट्रिंग से सभी गैर-मुद्रण योग्य ASCII वर्णों को प्रभावी ढंग से हटा देता है।
वैकल्पिक रूप से, आप पायथन की अंतर्निहित स्ट्रिंग.प्रिंट करने योग्य विधि का उपयोग कर सकते हैं गैर-मुद्रण योग्य वर्णों को फ़िल्टर करने के लिए। हालाँकि, यह विधि यूनिकोड वर्णों को बाहर करती है, इसलिए यह सभी उपयोग मामलों के लिए उपयुक्त नहीं हो सकती है।
यूनिकोड वर्णों को संभालने के लिए, आप नियमित अभिव्यक्ति में वर्ण वर्ग का विस्तार इस प्रकार कर सकते हैं:
control_chars = ''.join(map(chr, itertools.chain(range(0x00,0x20), range(0x7f,0xa0))))
यह विस्तारित वर्ण वर्ग सामान्य गैर के साथ बुनियादी नियंत्रण वर्णों को शामिल करता है -मुद्रण योग्य यूनिकोड वर्ण।
निकालें_कंट्रोल_चार फ़ंक्शन को तदनुसार संशोधित करके, आप ASCII और यूनिकोड गैर-मुद्रण योग्य वर्ण दोनों को सफलतापूर्वक संभाल सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3