MaxReve نشر 14 سبتمبر 2015 أرسل تقرير نشر 14 سبتمبر 2015 أريد أن أقوم بإستبدال جميع علامات الإقتباس الفردية (') بواحدة زوجية (“) مع بعض الإستثناءات مثل "n't" و "'ll" و "'m".فعل سبيل المثال، النص التالي:input="the stackoverflow don\'t said, \'hey what\'" يصبح كالتالي:output="the stackoverflow don\'t said, \"hey what\"" اقتباس
0 هشام رزق الله نشر 14 سبتمبر 2015 أرسل تقرير نشر 14 سبتمبر 2015 (معدل) يمكنك فعل ذلك بطريقتين الأولى عبر طريقة regex مثل المثال التالي:input="I'm one of the persons' stackoverflow don't th'em said, 'hey what' I'll handle it." print re.sub(r"(?<!s)'(?!(?:t|ll|e?m)\b)", '"', input)حيث ستكون نتيجة الشيفرة السابقة كالتالي:I'm one of the persons' stackoverflow don't th'em said, "hey what" I'll handle it.ملاحظة: لا تنسى استدعاء مكتبة re عن طريق كتابة import re في بداية الملف.والطريقة الثانية وهي الطريقة الأبسط، لأنها تتكون من أسطر أطول لكن أسهل للفهم فهي تستخدم شيفرات أساسية من لغة البايثون مثل append و for.شيفرة الطريقة الثانية:text="the stackoverflow don't said, 'hey what'" out = [] for i, j in enumerate(text): if j == '\'': if text[i-1:i+2] == "n't" or text[i:i+3] == "'ll" or text[i:i+3] == "'m": out.append(j) else: out.append('"') else: out.append(j) print ''.join(out)وستكون النتيجة كالتالي:the stackoverflow don't said, "hey what"وبالطبع يمكنك إضافة الاستثناءات كما تريد عن طريق إضافتها إلى الجملة الشرطية. المصدر تم التعديل في 14 سبتمبر 2015 بواسطة هشام رزق الله اقتباس
السؤال
MaxReve
أريد أن أقوم بإستبدال جميع علامات الإقتباس الفردية (') بواحدة زوجية (“) مع بعض الإستثناءات مثل "n't" و "'ll" و "'m".
فعل سبيل المثال، النص التالي:
يصبح كالتالي:
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.