Skip to content

Instantly share code, notes, and snippets.

@greymd
Last active August 29, 2015 14:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save greymd/a6933f2472b888a75014 to your computer and use it in GitHub Desktop.
Save greymd/a6933f2472b888a75014 to your computer and use it in GitHub Desktop.
南武線の駅の中で、快速→各停→快速 となっている不憫な並びの3駅を抽出するegisonシェル芸。
# 南武線の駅の中で、快速→各停→快速 となっている不憫な並びの3駅を抽出するegisonシェル芸。
curl -so- -L goo.gl/4Gl1BL | tr ',\n' '\t' | egison -F 1cs -m '(match-all-lambda (list something) [ <join _ <cons $x <cons ,"快速" <cons $y <cons ,"各停" <cons $z <cons ,"快速" >>>>>>> [x y z]] )'
# [Result]
# {["鹿島田" "平間" "向河原"] ["登戸" "中野島" "稲田堤"] ["稲田堤" "矢野口" "稲城長沼"]}
#
# 既存のgrep等による単純な文字列マッチでは難しいオーバーラップしたパターンをループなしで検出できる。
# curlで習得する文字列には「稲田堤」はひとつしか含まれていないが、
# 例では稲田堤がオーバーラップしている。
@greymd
Copy link
Author

greymd commented Jan 20, 2015

Egiさん、なるほど、コレクションではなく-sオプションをつかってタプルとして読ませればよかったんですね!私がやろうとして挫折したやり方でした……w
ありがとうございます!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment