MarkDownの正規表現セット

こんにちは、Habrの親愛なるユーザー。

この投稿では、私が長い間遊んだものを共有したいと思います。これが誰かに役立つことを願っています。



最近、新しいプロジェクトでは、MarkDownマークアップ言語の構文強調表示を行う必要があるという事実に出会いました。 最近では、さまざまな場所で非常に人気があります。 Googleを長期間使用した結果、すべてを正常に機能させるために、すべてを自分で作成し、長時間テストする必要がありました。

カットの下には、Objective-cのオプションで基本的なMarkDownマークアップ要素を探す正規表現のセットがあります。





H1

^# (.)+$ //   ^.+$\n^={3,}$ //    
      
      





H2

 ^#{2,2} (.)+$ //   ^.+$\n^-{3,}$ //    
      
      





H3 ... H6

 ^#{3,3} (.)+$ ... ^#{6,6} (.)+$
      
      





太字(**テキスト**)

 (?<!\*|\\\*)\*{2,2}[^\*\n].+?[^\*]\*{2,2}(?!\*|\\)
      
      





斜体(*テキスト*または_text_)

 ((?<!\*|\\)\*[^\*\n].+?[^\*|\\]\*(?!\*))|(_.+?_)
      
      





太字斜体(***テキスト***)

 (?<!\*|\\)\*{3,3}[^\*\n].+?[^\*|\\]\*{3,3}(?!\*)
      
      





モノスペース( `text`)

 `[^`]*`
      
      





番号付きリスト

 (^\d{1,3}\. .*$)+|(^ {1,10}\d{1,3}\. .*$)+
      
      





番号なしリスト

 (^(\*|\+|-) .*$)+
      
      





image![img alt](http://image.url/img.png)

 !\[[^\[\]]*?\]\(.*?\)
      
      





url [リンク](http://site.com/)

 \[[^\[\]]*?\]\(.*?\)|^\[*?\]\(.*?\)
      
      





ブロック引用

 ^>{1,4} (.)+$
      
      







これらの正規表現が適用されたアプリケーションのスクリーンショットの一部を次に示します。



画像







All Articles