"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إزالة الأحرف غير ASCII بشكل انتقائي مع الحفاظ على المسافات والفترات؟

كيفية إزالة الأحرف غير ASCII بشكل انتقائي مع الحفاظ على المسافات والفترات؟

تم النشر بتاريخ 2024-11-01
تصفح:606

How to Selectively Remove Non-ASCII Characters Preserving Spaces and Periods?

الإزالة الانتقائية للأحرف غير ASCII

غالبًا ما يتضمن العمل مع البيانات النصية الحاجة إلى إزالة الأحرف غير ASCII، مع الحفاظ على رموز معينة مثل المسافات والفترات. على الرغم من أن طرق التصفية الأساسية قد تؤدي إلى إزالة كافة الأحرف غير ASCII، فقد لا يكون هذا أمرًا مرغوبًا فيه في بعض الحالات.

لنأخذ في الاعتبار الكود التالي:

def onlyascii(char):
    if ord(char)  127: return ''
    else: return char

يزيل هذا الرمز جميع الأحرف ذات قيم ASCII أقل من 48 أو أكبر من 127، مما يؤدي بشكل فعال إلى تجريد النص من أحرف غير ASCII. ومع ذلك، فإنه يزيل أيضًا المسافات (ASCII 32) والنقاط (ASCII 46).

لإزالة الأحرف غير ASCII بشكل انتقائي مع الحفاظ على المسافات والنقاط، يمكننا الاستفادة من وحدة string.printable في بايثون:

import string
printable = set(string.printable)
filtered_data = filter(lambda x: x in printable, data)

تحتوي مجموعة string.printable على جميع الأحرف القابلة للطباعة على النظام، بما في ذلك الأرقام والحروف والرموز والمسافات والنقاط. باستخدام هذه المجموعة كمرشح، يمكننا إزالة جميع الأحرف غير القابلة للطباعة من السلسلة.

على سبيل المثال، إذا كان لدينا السلسلة "some\x00string.with\x15 Funny Characters":

&&& ]
s = "some\x00string. with\x15 funny characters"
''.join(filter(lambda x: x in printable, s))
ستكون النتيجة:

'somestring. بأحرف مضحكة'
'somestring. with funny characters'
تزيل هذه الطريقة بشكل فعال الأحرف غير ASCII مع الحفاظ على المسافات والنقاط، مما يوفر سلسلة نظيفة لمزيد من المعالجة.

بيان الافراج أعيد طبع هذه المقالة على: 1729341017 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3