یک برنامه پایتون بنویسید که از یک فایل متنی تمامی هدرها (خطهایی که با # شروع میشوند یا با الگوهای "Header: ..." یا "Section: ...") را با استفاده از عبارات منظم استخراج و به صورت لیست شمارهگذاریشده چاپ کند.
17.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 01:26 0.0
فایل را بخوانید و با ماژول re یک الگوی ترکیبی بسازید که سه نوع هدر را بپذیرد (مثلاً ^\s*#+\s*(.+) برای هدرهای با # و Header:\s*(.+)|Section:\s*(.+) برای الگوهای متنی). از re.MULTILINE برای تطبیق در هر خط استفاده کنید، گروههای ثبتشده را بگیرید، فضاهای اضافی را strip کنید و در صورت نیاز با set تکراریها را حذف کنید و سپس خروجی را با شمارهگذاری نمایش دهید. میتوانید برای انعطافپذیری از flags مانند re.IGNORECASE و برای ورودی فایل از argparse بهره ببرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای حفظ ترتیب و جلوگیری از تکرار بهتر است بهجای set ساده از یک لیست همراه با یک مجموعه seen استفاده کنید تا ترتیب ظاهر شدن هدرها حفظ شود. برای جلوگیری از مشکل گرفتن tupleها هنگام استفاده از alternation از re.finditer با یک الگوی ترکیبی و انتخاب گروهی که None نیست یا از یک گروه تک با non-capturing alternation استفاده کنید. حتماً re.MULTILINE و در صورت نیاز re.IGNORECASE را فعال کنید، فایل را با encoding='utf-8' باز کنید و برای فایلهای بزرگ خطبهخط پردازش کنید تا حافظه بهینه بماند. همچنین با strip و در صورت لزوم یک تابع نرمالسازی کاراکترها و حذف نشانههای اضافی markdown خروجی خواناتر میشود.
گزارش