CCF Python题解(100分)201703-3 Markdown

CCF Python题解(100分)201703-3 Markdown

import re

raw = ""

while True:
    try:
        inputStr = input()
        Str1 = re.sub("_(.*?)_", "<em>\g<1></em>", inputStr)  # re
        Str2 = re.sub("\[(.*?)\]\((.*?)\)", '<a href="\g<2>">\g<1></a>', Str1)

        raw += Str2 + '\n'
    except:
        break
list1 = raw.split('\n')
new = ""
listflag = False
graphflag = False
for index in range(len(list1)):
    i = list1[index]
    list2 = i.split(' ', 1)
    if list2[0]:  # 不为空
        if list2[0] == '*':  # 无序列表
            if listflag == False:
                new += "<ul>\n"
                listflag = True
            new += "<li>" + list2[1] + "</li>\n"
            if not list1[index + 1].startswith('*'):
                new += "</ul>\n"
                listflag = False
        elif list2[0].count('#'):  # 含# 标题
            number = len(list2[0])
            new += "<h{}>{}</h{}>".format(str(number), list2[1], str(number)) + '\n'
        else:  # 段落
            if graphflag == False:
                new += "<p>"
                graphflag = True
            new += i
            if list1[index + 1].startswith('*') or list1[index + 1].startswith('#') or len(list1[index + 1]) == 0:
                new += "</p>"
                graphflag = False
            new += "\n"
print(new.strip('\n'))

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值