Parsed according to RFC 2616, as at http://pretty-rfc.herokuapp.com/RFC2616#media.types.

parse_media(x)

Details

A simplified minimal EBNF is:

  • media-type = type "/" subtype *( ";" parameter )

  • type = token

  • subtype = token

  • parameter = attribute "=" value

  • attribute = token

  • value = token | quoted-string

  • token = 1*<any CHAR except CTLs or ()<>@,;:\"/[]?=

  • quoted-string = " *(any text except ", unless escaped with \) "

Examples

parse_media("text/plain")
#> $complete #> [1] "text/plain" #> #> $type #> [1] "text" #> #> $subtype #> [1] "plain" #> #> $params #> list() #>
parse_media("text/plain; charset=utf-8")
#> $complete #> [1] "text/plain" #> #> $type #> [1] "text" #> #> $subtype #> [1] "plain" #> #> $params #> $params$charset #> [1] "utf-8" #> #>
parse_media("text/plain; charset=\"utf-8\"")
#> $complete #> [1] "text/plain" #> #> $type #> [1] "text" #> #> $subtype #> [1] "plain" #> #> $params #> $params$charset #> [1] "utf-8" #> #>
parse_media("text/plain; randomparam=\";=;=\"")
#> $complete #> [1] "text/plain" #> #> $type #> [1] "text" #> #> $subtype #> [1] "plain" #> #> $params #> $params$randomparam #> [1] ";=;=" #> #>