BEFORE
この文章の中には、Markdownで**強調**される箇所があります。
**一行**の中に**複数回**出てくるかも知れませんし、
その**複数****箇所**は隣接しているかもしれません。
あるいはまた、**強調される箇所が、
複数行にまたがっている可能性**もあります。
もちろん、まったく強調されない行もあります。
↓
AFTER
この文章の中には、Markdownで<b>強調</b>される箇所があります。
<b>一行</b>の中に<b>複数回</b>出てくるかも知れませんし、
その<b>複数</b><b>箇所</b>は隣接しているかもしれません。
あるいはまた、<b>強調される箇所が、
複数行にまたがっている可能性</b>もあります。
もちろん、まったく強調されない行もあります。
= <<"EOD"
text この文章の中には、Markdownで**強調**される箇所があります。
**一行**の中に**複数回**出てくるかも知れませんし、
その**複数****箇所**は隣接しているかもしれません。
あるいはまた、**強調される箇所が、
複数行にまたがっている可能性**もあります。
もちろん、まったく強調されない行もあります。
EOD
= <<"EOD"
html この文章の中には、Markdownで<b>強調</b>される箇所があります。
<b>一行</b>の中に<b>複数回</b>出てくるかも知れませんし、
その<b>複数</b><b>箇所</b>は隣接しているかもしれません。
あるいはまた、<b>強調される箇所が、
複数行にまたがっている可能性</b>もあります。
もちろん、まったく強調されない行もあります。
EOD
def bold_loop(s)
= ''
t while s.match(/\*\*(.+?)\*\*/m)
+= "#{$`}<b>#{$1}</b>"
t = $'
s end
+ s
t end
def bold_block(s)
.gsub(/\*\*(.+?)\*\*/m) do
s"<b>#{$1}</b>"
end
end
== html #=> true
bold_loop(text) == html #=> true bold_block(text)
"Hello, **world**!"
to
"Hello, <b>world</b>!"
in Ruby?