{"categories":["Scala"],"blog_title":"Faith and Brave - C++\u3067\u904a\u307c\u3046","width":"100%","height":"190","title":" Parser Combinators\u3067IPv4\u306e\u30d1\u30fc\u30b9","url":"https://faithandbrave.hateblo.jp/entry/20100922/1285138912","author_url":"https://blog.hatena.ne.jp/faith_and_brave/","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Ffaithandbrave.hateblo.jp%2Fentry%2F20100922%2F1285138912\" title=\" Parser Combinators\u3067IPv4\u306e\u30d1\u30fc\u30b9 - Faith and Brave - C++\u3067\u904a\u307c\u3046\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","published":"2010-09-22 16:01:52","description":"\u30d1\u30fc\u30b5\u30fc\u3092\u6307\u5b9a\u56de\u6570\u9069\u7528\u3059\u308brepN\u3068\u3001\u6700\u5f8c\u306e\".\"\u3092optional\u306b\u3059\u308b\u3060\u3051\u3067\u308f\u308a\u3068\u7c21\u5358\u306b\u66f8\u3051\u307e\u3057\u305f\u3002 import scala.util.parsing.combinator.syntactical._ object Main extends StandardTokenParsers { lexical.delimiters ++= List(\".\") def parse : Parser[List[String]] = repN(4, numericLit <~ opt(\".\")) def parseIp(s : String) : List[String] = { parse(new \u2026","blog_url":"https://faithandbrave.hateblo.jp/","provider_url":"https://hatena.blog","version":"1.0","image_url":null,"type":"rich","author_name":"faith_and_brave","provider_name":"Hatena Blog"}