(リマインダ代わりに、)
私はJavascriptで文字列の中を全置換するとき、
replace関数は最初の1個しか置換してくれないから
わざわざ splitしてループまわしてたよ。
ところがreplace関数は大変使える奴だったよ...とほほのreplace関数の解説では
http://www.tohoho-web.com/js/string.htm
を見ると、
xx1 = "This is a pen.".replace("pen", "book");
これを実行すると、"This is a book."と返る。よしよし。
そして複数行けるか試す。
xx1 = "This pen is a pen. And I love pen!".replace("pen", "book");
だと、"This book is a pen. And I love pen!" と返り、
後半2つの pen が置換されずにそのまま返る。
今まで私は「なんだ、replace関数は最初の1個しか置換せーへんねや。」と覚えていた。
ふと、今日サクラエディタのマクロを作っていて、
もう一度replace関数を見なおしてみた。
「正規表現を設定できるじゃん!」
replace関数の1個目の引数に正規表現を渡せるのである。
そこで実行したのがこのコード!
xx1 = "This pen is a pen. And I love pen!!!!".replace(/pen/g, "book");
これが、"This book is a book. And I love book!!!!" を返した!
全置換できるじゃん。
これけっこうreplace関数に関しては誤解してる人多いと思うなぁ。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/132711048
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック
http://blog.seesaa.jp/tb/132711048
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック
プログラミングって、やっぱりプログラミング脳にならないと、ムズカシイ。
基本はシンプルだけれど、シンプルの組み合わせで難しい仕事をさせるってのは、慣れてないと発想出来ないね。
http://www.kent-web.com/perl/chap7.html
特に正規表現なんかそんな毎日使うもんでもなく
たまに使うものだからその都度 「正規表現」でググることになる(笑)。