#TwitterのURLについて
これがツイートのURLの例
https://twitter.com/yurinolog/status/1209290280328814593?s=20
httpsから始まり3つ目のyurinologがユーザー名、5つ目の数字の羅列がstatusと呼ばれる各ツイートに割り振られる番号。(語尾のs=20の正体はいまだに分からない。知ってる方いらしたら教えて頂きたいです)
#書いたコードと結果
url = "https://twitter.com/yurinolog/status/1209290280328814593?s=20"
/(https|http):\/\/(twitter.com)\/([A-Za-z0-9_]*)\/(status|statues)\/(\d+)/.match(url)
puts $1 #=> http or https
puts $2 #=> twitter.com
puts $3 #=> user
puts $4 #=> status or statuses
puts $5 #=> status
#使用した正規表現
正規表現は数度使ったことがあるが、抽象的というかコードから結果がイメージしにくく知識はほぼ皆無なので、一応復習しておくことにする。
##キャプチャ()と$について
キャプチャ(後方参照)と言うのは正規表現でマッチした部分の1部を取り出すときに使う。
取り出す予定の部分を()
で囲うことで$1
や$2
といった風に取り出すことが出来る。
/(https|http):\/\/(twitter.com)/.match(url)
puts $2 #=> twitter.com
##いくつかの候補から選択する
今回の場合はhttpsかhttpか、statusかstatusesとなる。
/(https|http)/.match(url)
候補となる値を|
で区切る。
##英数字とアンダーバーについて
今回は[A-Za-z0-9_]
と書いた。
他にも
[A-Z]
[a-z]
[0-9]
と分けて表現できる。
あとstatusの数字の表現には/d+
を使ってみた。
*
と+
は同じ文字や単語を繰り返しマッチさせたいと気に使う。