2008年6月1日日曜日

[ruby] gsubで置き換えする時のメモ

何はともあれマニュアル
gsub マニュアル

基本

gsub(pattern, replace)
gsub(pattern) {|matched| .... }
replace に引数を渡すのとブロックで処理する場合の住み分けは、パターンにマッチしたものにたいして何らかの操作をしたいかどうか


例えば
@username hogehoge のような文字列に対して、Twitter風に @[ユーザー名]の部分をAタグで囲みたいとき。
"@username hogehoge".gsub(/@(\S+)/, '<a href="/\\1">\\1</a>')
これでもAタグで囲むことはできるけど、href要素をURIエンコードしたい。
"@username hogehoge".gsub(/@(\S+)/) { '<a href="/' + URI.encode($1) + '">'  + $1 + '</a>' }


参考
正規表現 rubyマニュアル
組み込み変数 $<digits>

0 件のコメント: