

タイトルの通りなのですが、

Rubyであるmarkdownのテキストの中からチェックボックスの中の文字列(`- []` `-
[x]`)だけを取得して、その文字列の配列を返してくれるみたいな事を実装したいのですが、良いライブラリがありましたらご教授頂けないでしょうか？


CC BY-SA 3.0
2016-05-04T12:35:03.037
24560
2016-05-09T04:27:34.390
9059
question
ruby markdown
Rubyで文字列の中からマークダウンのチェックボックスの中の文字列を取得したい


正規表現はいかがでしょうか？（Rubyなら標準ライブラリのみで使えます）

サンプル  
<http://rubular.com/r/nkgIQByUuS>

わかりやすい正規表現解説記事  
<http://qiita.com/jnchito/items/893c887fbf19e17d3ff9>

Rubyで正規表現を検索する関数  
<http://ref.xaio.jp/ruby/classes/string/scan>

グループ等をうまく活用すればチェックされている文字列だけを取得、などもできます。  
お試しください。


CC BY-SA 3.0
2016-05-09T01:11:15.557
24654
2016-05-09T01:11:15.557
4850
24560
answer


## HTMLに変換してからDOMを検索する

Markdownパーサを通してHTMLを出力し、[Nokogiri](http://www.nokogiri.org/)を使ってDOM要素を検索します。Markdownか検索条件かもしくはその両方が複雑なのであれば、これが一番確実です。

## Markdownパーサをカスタマイズする

[Redcarpet](https://github.com/vmg/redcarpet)のような高機能なMarkdownパーサであれば、動作をカスタマイズするための方法が用意されているでしょうから、それを使ってリスト要素のレンダリングをフックしてどこかにデータを出力する、と言う方法が考えられます。

## Markdownソースを検索する

簡易な方法であれば、Markdownソースを正規表現で検索するのでもよいでしょう。

[code]

    source.scan(/^\s*-\s*\[(.*)\]\s*(.*)$/) {|s| ... }
    
[/code]

s には []
の中と後続の文字列が配列で渡されます。コードブロックの内外の区別が付かない、ネストしたリストを扱うのは大変、など難点がありますが、ソースのフォーマットが限定されることが確実ならこれでも十分です。


CC BY-SA 3.0
2016-05-09T04:27:34.390
24660
2016-05-09T04:27:34.390
5793
24560
answer