ahmed1990 نشر 7 أكتوبر 2015 أرسل تقرير نشر 7 أكتوبر 2015 أريد أن أقوم بتقسيم السلسلة النصية التالية:"Hey, you - what are you doing here!?" لتصبح على هذا الشكل:['hey', 'you', 'what', 'are', 'you', 'doing', 'here'] لكن دالة str.split() تعمل فقط مع وسيط واحد (argument) فكيف أستطيع التعامل مع الجمل التي بها رموز ؟ اقتباس
0 هشام رزق الله نشر 7 أكتوبر 2015 أرسل تقرير نشر 7 أكتوبر 2015 هنالك العديد من الحلول، فيمكنك على سبيل المثال استخدام هذه الطريقة التي استعملنا فيها التعابير العادية:import re DATA = "Hey, you - what are you doing here!?" print re.findall(r"[\w']+", DATA) # Prints ['Hey', 'you', 'what', 'are', 'you', 'doing', 'here'] كما أنه يوجد حل باستخدام دالة split التي سنقوم فيها بتمرير W+ بطرق مختلفة كمعامل أول، أنظر إلى المثال التالي لتفهم قصدي:>>> re.split('\W+', 'Words, words, words.') ['Words', 'words', 'words', ''] >>> re.split('(\W+)', 'Words, words, words.') ['Words', ', ', 'words', ', ', 'words', '.', ''] >>> re.split('\W+', 'Words, words, words.', 1) ['Words', 'words, words.'] ويمكنك أيضا استخدام طرق سهلة وتقليدية وغير معقدة لتقسيم السلسلة النصية، فمثلا يمكنك استخدام دالة split() لفصل رموز معينة من السلسلة النصية:>>> 'a;bcd,ef g'.replace(';',' ').replace(',',' ').split() ['a', 'bcd', 'ef', 'g'] وفي النهاية يمكنك استخدام هذا الحل بدون regex حيث استخدمنا فيه دوال من مكتبة string كما في المثال:import string punc = string.punctuation thestring = "Hey, you - what are you doing here!?" s = list(thestring) ''.join([o for o in s if not o in punc]).split() المصدر اقتباس
السؤال
ahmed1990
أريد أن أقوم بتقسيم السلسلة النصية التالية:
لتصبح على هذا الشكل:
لكن دالة str.split() تعمل فقط مع وسيط واحد (argument) فكيف أستطيع التعامل مع الجمل التي بها رموز ؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.