正規表現を介して特定のテキスト条件の周りにhtmlタグを追加しようとしています。現在、*と**が機能しています(h1タグとh2タグを追加)
liタグの形式は同じですが、開始の横に終了タグが追加されます。これは、私が望むものではありません。
なぜ出力が違うのですか?
:::テキストファイル::::
* this is an awesome *
** this could be something better **
* another test *
- li are good for lists
:::テキストファイルの終了:::
::: MY OUTPUT :::
-bash-4.1$ ruby markup.rb testMarkup.txt
<h1>this is an awesome <\h1>
<h2> this could be something better <\h2>
<h1>another test <\h1>
<li><\li>li are good for lists
::出力終了:::
::Rubyファイル::
#!/usr/bin/env ruby
text = IO.read(ARGV[0])
text = text.gsub(/^\*{1}[^*](.*?)\*{1}\s/) do
"<h1>" + $1 + "<\\h1>"
end
text = text.gsub(/^\*{2}(.*?)(\*{2})\s/) do
"<h2>" + $1 + "<\\h2>"
end
text = text.gsub(/^[-](.*?)\s/) do
"<li>" + $1 + "<\\li>"
end
puts text
::ルビーファイルを終了::