با استفاده از Python و تابع re.subn، سطح هدرهای Markdown را یک درجه افزایش بده (تا حداکثر سطح ۶) و تعداد هدرهای تغییرکرده را برگردان.
12.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 00:20 0.0
برای این کار از ماژول re و تابع re.subn استفاده کن؛ با الگوی ^(#{1,5})\s+ و فلگ re.MULTILINE میتوان هدرهای دارای ۱ تا ۵ علامت # را پیدا کرد و با یک تابع جایگزین callable برای هر مطابقت، یک # به ابتدای گروه اضافه کرد (تا از عبور از سطح ۶ جلوگیری شود). re.subn متن جدید و شمارۀ جایگزینیها را برمیگرداند؛ نکتهٔ عملی اینکه در تابع جایگزین طول گروه را چک کن و در صورت رسیدن به ۶ همان را برگردان، و در انتها متن جدید و شمارۀ تغییرات را پرینت یا بازگردان.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
اگر میخواهید سطح هدرهای Markdown را یک درجه افزایش دهید، حواستان باشد که هدرهای داخل بلوکهای کد (inline یا fenced) نباید تغییر کنند و ممکن است نیاز باشد قبل از جایگزینی بخشهای کد را جدا کنید. الگوی ^(#{1,5})\s+ با فلگ re.MULTILINE و استفاده از تابع جایگزین callable کارآمد است؛ در تابع جایگزین طول گروه را چک کنید و فقط زمانی یک # اضافه کنید که طول فعلی کمتر از 6 باشد تا از عبور از سطح 6 جلوگیری شود. از re.subn برای گرفتن متن جدید و شمارۀ جایگزینیها استفاده کنید و در صورت نیاز قبل و بعد پردازش را برای تست و ثبت تغییرات لاگ کنید. همچنین به انواع هدرهای ست-اکست (مثلاً خطهای === یا ---) توجه داشته باشید چون توسط این الگو شناسایی نمیشوند و اگر لازم است باید جداگانه پردازش شوند.
گزارش