6月 052012
<< Mac/Linuxに日本語を喋らせる || SinatraっぽいWAFを作る、46行で >>
正規表現にマッチしうる単語を全パターン生成したら順番が付けれるので、圧縮とかに使えるというもの
インストールした
brew install https://raw.github.com/sinya8282/homebrew/rans/Library/Formula/rans.rb --HEAD
SFCの学籍番号で試す
% rans "[ts]\d{5}[a-z]{2}" --text t03792sh 70163867むしろ長くなった
戻す
% rans "[ts]\d{5}[a-z]{2}" --value 70163867 t03792sh
速い
% time rans "a*(c*|b*)" --value 100000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc rans "a*(c*|b*)" --value 100000 0.15s user 0.00s system 94% cpu 0.159 total
正規表現にマッチする正規表現
% rans ".+" --text "[ts]\d{5}[a-z]{2}" 31462101652614893842981046923104593130365 % rans ".+" --value 31462101652614893842981046923104593130365 [ts]\d{5}[a-z]{2}
日本語通る
% rans ".+" --text "RANSに日本語通るじゃん" 147105960411517028678017420574823136344237912645382197029890108076901827475 % rans ".+" --value 147105960411517028678017420574823136344237912645382197029890108076901827475 RANSに日本語通るじゃん
奇数
% rans "([1-9]+\d*)?[13579]" --value 0 1 % rans "([1-9]+\d*)?[13579]" --value 1 3 % rans "([1-9]+\d*)?[13579]" --value 2 5 % rans "([1-9]+\d*)?[13579]" --value 3 7 % rans "([1-9]+\d*)?[13579]" --value 4 9 % rans "([1-9]+\d*)?[13579]" --value 11 23