দুর্ভাগ্যক্রমে পাইথনে ধীরে ধীরে স্ট্রিং দিয়ে আইট্রেট করা। এই ধরণের জিনিসটির জন্য নিয়মিত এক্সপ্রেশন দ্রুততার ক্রমের উপরে চলে আসে। আপনাকে কেবল চরিত্রের বর্গটি নিজেই তৈরি করতে হবে। Unicodedata মডিউল এই জন্য বেশ সহায়ক বিশেষত হয়, unicodedata.category () ফাংশন। বিভাগগুলির বর্ণনার জন্য ইউনিকোড চরিত্রের ডেটাবেস দেখুন ।
import unicodedata, re, itertools, 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_chars = ''.join(map(chr, itertools.chain(range(0x00,0x20), range(0x7f,0xa0))))
control_char_re = re.compile('[%s]' % re.escape(control_chars))
def remove_control_chars(s):
return control_char_re.sub('', s)
পাইথন 2 এর জন্য
import unicodedata, re, sys
all_chars = (unichr(i) for i in xrange(sys.maxunicode))
categories = {'Cc'}
control_chars = ''.join(c for c in all_chars if unicodedata.category(c) in categories)
control_chars = ''.join(map(unichr, range(0x00,0x20) + range(0x7f,0xa0)))
control_char_re = re.compile('[%s]' % re.escape(control_chars))
def remove_control_chars(s):
return control_char_re.sub('', s)
কিছু ব্যবহারের ক্ষেত্রে অতিরিক্ত বিভাগ (যেমন কন্ট্রোল গ্রুপ থেকে সমস্ত পছন্দনীয় হতে পারে, যদিও এটি প্রসেসিংয়ের সময়টি ধীর করতে পারে এবং মেমরির ব্যবহার উল্লেখযোগ্যভাবে বাড়িয়ে তুলতে পারে category প্রতি বিভাগে অক্ষরের সংখ্যা:
Cc (নিয়ন্ত্রণ): 65
Cf (ফর্ম্যাট): 161
Cs (সারোগেট): 2048
Co (ব্যক্তিগত ব্যবহার): 137468
Cn (স্বাক্ষরযুক্ত): 836601
মন্তব্যগুলি থেকে পরামর্শ যুক্ত করে সম্পাদনা করুন ।