それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

正規表現の最短マッチを知ってると便利

正規表現は最長マッチ

正規表現って最長でマッチする。。。ちょっと不便

そこで、正規表現で最短マッチ

.+? 

? を付記することで最短マッチになる。

または[.*?]のように、条件に* を使うことも出来る。

正規表現で最短マッチできたら便利ですよね

最短マッチの例

'[2016-09-19][済][TODO]提出資料を作る.txt'.match(/\[(.+?)\]/)
#=> #<MatchData "[2016-09-19]" 1:"2016-09-19">

もし最短マッチしないとどうなるか.

'[2016-09-19][済][TODO]提出資料を作る.txt'.match(/\[(.+)\]/)
#=> #<MatchData "[2016-09-19][済][TODO]" 1:"2016-09-19][済][TODO">

最短マッチをしない場合は、最長マッチになる。。。不便

最短マッチを知らないとnot 地獄

最短マッチを知らなくても、not を使えば、最短マッチを実現することが出来るけど。。。。

'[2016-09-19][済][TODO]提出資料を作る.txt'.match(/\[([^\]]+)\]/)
#=> #<MatchData "[2016-09-19]" 1:"2016-09-19">

not を使ってマッチさせてもイイんだけど、最短マッチの方が圧倒的に読みやすいですね。

参考資料

http://qiita.com/ha_g1/items/d41febac011df4601544

http://d.hatena.ne.jp/cloned/20061110

macOS のDNSキャッシュを消す。これをコマンドからクリアする

2018-09-10 確認

MacOSのバージョンが変わって効かなくなっています。

sudo killall -HUP mDNSResponder;
sudo killall mDNSResponderHelper;
sudo dscacheutil -flushcache

10.12移行は mDNSResponder の再起動が必要です。

macOSDNSキャッシュを消す

sudo dscacheutil -flushcache

BSD系のコマンドでのdns 関連もmacのFramework側に聞きに行ってるみたいなので、キャッシュを消すにはmac 専用コマンドを使う必要があるみたい。

さらにいえば、各アプリケーション側でキャッシュしてることもあるだろうし、コレだけで全て解決とは行かないかも。

まぁ専用コマンド使わなくてもネットワークオン・オフすりゃイイんだけどさ。

コマンドから cache を消せるのは嬉しい。alias しておくと便利かもしれない。

alias remove-dns-cache="dscacheutil -flushcache"

参考資料

DNSルックアップでAAAAレコードを… - Apple コミュニティ

Mac OS XでDNSキャッシュをFlushする方法 - 積み重ねた日々