با استفاده از Python و تابع re.subn، سطح هدرهای Markdown را یک درجه افزایش بده (تا حداکثر سطح ۶) و تعداد هدرهای تغییرکرده را برگردان.

12.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 00:20

0.0

برای این کار از ماژول re و تابع re.subn استفاده کن؛ با الگوی ^(#{1,5})\s+ و فلگ re.MULTILINE می‌توان هدرهای دارای ۱ تا ۵ علامت # را پیدا کرد و با یک تابع جایگزین callable برای هر مطابقت، یک # به ابتدای گروه اضافه کرد (تا از عبور از سطح ۶ جلوگیری شود). re.subn متن جدید و شمارۀ جایگزینی‌ها را برمی‌گرداند؛ نکتهٔ عملی اینکه در تابع جایگزین طول گروه را چک کن و در صورت رسیدن به ۶ همان را برگردان، و در انتها متن جدید و شمارۀ تغییرات را پرینت یا بازگردان.

توسط پژوهشگر در 198 روز قبل ساعت 00:20
دسته بندی ها: Python Python for beginner
reyhaneh در 198 روز قبل ساعت 00:21

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

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری