2017-11-14 4 views
1

私はpython関数を書いて、HTMLの< href>タグに[text](リンク)のようなマークダウン形式のリンクを変換しようとしています。たとえば:ハイパーリンクを変換する

リンク(ライン)

link("Here is the link [Social Science Illustrated](https://en.wikipedia.org/wiki/Social_Science_Illustrated) I gave you yesterday.") 

"Here is the link <a href="https://en.wikipedia.org/wiki/Social_Science_Illustrated">Social Science Illustrated</a> I gave you yesterday." 

そして、今の私のコードは次のとおりです。

def link(line): 
    import re 
    urls = re.compile(r"((https?):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)") 
    line = urls.sub(r'<a href="\1"></a>', line) 
    return line 

出力:

=> 'Here is the link [Social Science Illustrated] (<a href="https://en.wikipedia.org/wiki/Social_Science_Illustrated"></a>) I gave you yesterday.' 

は、だから私は変換する方法を思っていた[テキスト]部分を正しい位置に挿入しますか?

答えて

1

あなただけ[text](link)構文に基づいて変換する必要がある場合:

def link(line): 
    import re 
    urls = re.compile(r'\[([^\]]*)]\(([^\)]*)\)') 
    line = urls.sub(r'<a href="\2">\1</a>', line) 
    return line 

あなたは、リンクを検証する必要はありません。まともなブラウザは、それをリンクとしてレンダリングしません。

関連する問題