「GitHub」と一致するもの

JavaScriptのお話です。node.jsに限らない話だと思いますが、node.jsでの動作を説明します。

一言で言うと、"g"オプションをつけたRegExpのtest()の呼び出しはループ(?)します。

説明するよりも、実際の動きを見てみましょう。

% node
> re = new RegExp('xyz', 'g');
/xyz/g
> s = 'aaaxyzbbbxyz';
'aaaxyzbbbxyz'
> re.test(s)
true
> re.lastIndex
6
> re.test(s)
true
> re.lastIndex
12
> re.test(s)
false
> re.lastIndex
0
> re.test(s)
true
> re.lastIndex
6

という感じで、re.lastIndexがマッチを開始するインデックスを保持しているようです。で、最後まで行ったら初めに戻ると。

"g"オプションをつけなければこんなことにはならず、lastIndexも常に0のままです。


ついでに、RegExp.test()とRegExp.exec()とString.match()とString.search()のベンチマークもしておきました。

一つは、node.js用。
https://gist.github.com/dai-shi/5169296

もう一つは、ブラウザ用。自分で作ろうかと思ったら、既にありました。
http://jsperf.com/regex-test-or-exec-or-string-search-or-match

やはり、正規表現のマッチを確認するだけなら、RegExp.test()が一番よさそうですね。

ちょっと面白い結果だったのはFirefoxのケースで、RegExp.test()とRegExp.exec()の速さがほとんど変わりませんでした。つまり、test()の内部でexec()を呼び出しちゃってる感じです。Chromeとnode.jsでは(どちらもv8だけど)差が出ているので、FirefoxのJavaScriptエンジンは改善の余地があるということでしょう。

前から思っていましたが、Chromeの正規表現の処理は速いですねぇ。Firefoxとは比べものにならないです。

今日はvimのお話。 vimのプラグイン管理にはVundleがあります。

gmarik/vundle

その設定方法は、READMEに

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

と書いてあるだけ。 これを例えば、カレントディレクトリの.vimで動かすには、

set rtp+=./.vim/bundle/vundle/
call vundle#rc(./.vim/bundle)

とします。あんどきゅめんてぃっど。

上級者向けGunosy RSS

  • 投稿日:
  • by

RSSでGunosyを利用する際の懸念点 を受けて、リダイレクトURLを出力できるように改造しました。

と、言っても一日でできるには限界があります。よって、上級者向けとなりました。

Gunosy RSSフィード 生成Webサービス

これをだれでも使えるようにするには、ちょっと苦労するかも。 Gunosyで公式にRSSがサポートされる予定はあるのでしょうか?

Gunosy RSSの反響まとめ

  • 投稿日:
  • by

なんかたった一日ですごいことになっています。 経緯を簡単にまとめておきます。

3/4にGunosy RSSを開発して公開しました。

Gunosy RSSフィード 生成Webサービス

リツイートが数件あったけど、あまりRSSリーダーを使う人はいないのかな、と思ってました。

それが、3/12の夜あたりから、ブログで取り上げられたようです。

私がiPhone用のGunosy公式アプリを削除した理由

GunosyのRSSフィードを生成してRSSリーダーに登録して読むと超快適

GunosyをRSSで利用する方法が凄い!RSSを利用している人はこのほうがGunosyも鍛えられるかも!

GunosyをRSSで読む方法「Gunosy RSS」

GunosyをRSSリーダーで読む方法をまとめてみた

その後、Gunosyから公式見解が。

RSSでGunosyを利用する際の懸念点

それを受けて、各ブログの反応。

GunosyをRSSで利用する人は要注意!Gunosy開発チームよりデメリットの公式発表がありました!

RSSでGunosyを利用する方法に関して重大な懸念点があると公式に表明がありました

GunosyをRSSで取得して読むと「鍛えられない」と公式がファイナルアンサーで、あなたは選択を迫られるわけだ

Gunosyの中の人がGunosyをRSSで利用することをおすすめしない理由

GunosyをRSSで利用することは公式にオススメできないそうです! じゃあどうする?

さて、どうしましょう。


追記。

GunosyをRSSに登録する方法と、それによるメリット/デメリット