LoginSignup
0
0

More than 3 years have passed since last update.

正規表現で特定の文字列のあと or まえの情報だけとりたい

Posted at

正規表現で特定の文字列のあと or まえの情報だけとりたい

数年に一回ぐらいこういう正規表現を書こうとしてどうやって書くんだっけ……とわけがわからなくなるので備忘録用メモ。

たとえばこういうURL(https://www.tiktok.com/@kyoookosan/video/6883074502054432002) 
から/video/の後の数字列だけを抜き出したい時(用途としてはvimeoのembedをこのIDから組み立てたい)

正規表現的にはこう

/(?<=video\/)\d{10,}/

ruby pry

[1] pry(main)> url = "https://www.tiktok.com/@kyoookosan/video/6883074502054432002"
=> "https://www.tiktok.com/@kyoookosan/video/6883074502054432002"

[2] pry(main)> url.match(/(?<=video\/)\d{10,}/)
=> #<MatchData "6883074502054432002">

後ろじゃなくて特定文字列の前を取りたい場合はこう

[1] pry(main)> url = "https://www.tiktok.com/@kyoookosan/video/6883074502054432002"
=> "https://www.tiktok.com/@kyoookosan/video/6883074502054432002"

[2] pry(main)> url.match(/(.*)(?=\/video)/).to_a.try(:first)
=> "https://www.tiktok.com/@kyoookosan"
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0