こんにちは、現役沖縄フリーランスエンジニアのmah(MaLanka)です。
このブログでは、
僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、
ノウハウなどを書いていきます。
今回は、
- 【正規表現】Rubyで、文字列がURLかどうかをチェックする
です。
【正規表現】Rubyで、文字列がURLかどうかをチェックする
結論
URI.regexp.match(検証したい文字列).nil?
で出来ます。
解説
URI.regexp.match(検証したい文字列)
を使います。
例: 対象の文字列がURLの場合
MatchDataオブジェクトが返ります。
URI.regexp.match('https://www.malanka.tech') => #<MatchData "https://www.malanka.tech" 1:"https" 2:nil 3:nil 4:"www.malanka.tech" 5:nil 6:nil 7:nil 8:nil 9:nil>
例: 対象の文字列がURLでない場合
nilが返ります。
URI.regexp.match('URLではありません') => nil
nilが返る性質を利用して、冒頭の、
URI.regexp.match(検証したい文字列).nil?
で論理値を返すことで、
対象の文字列がURLかどうかをチェックすることが出来ます。
検証
Railsコンソールで検証します。
# URLなのでMatchDataオブジェクトを返す。よって .nil? はfalseを返す > URI.regexp.match('https://www.malanka.tech').nil? => false # URLではないのでマッチせずにnilを返す。よって .nil? はtrueを返す > URI.regexp.match('URLではありません').nil? => true
参考リンク
module URI (Ruby 3.4 リファレンスマニュアル)
URI.regexp (Ruby 3.4 リファレンスマニュアル)
Regexp#match (Ruby 3.4 リファレンスマニュアル)
Object#nil? (Ruby 3.4 リファレンスマニュアル)
以上です。
RailsやRubyを学びたい人へ
RailsやRubyを学びたい人は、
RailsHack(レイルズハック)という、
最近できた新しいプログラミングスクール(今なら通常価格69,800円が、早期割で29,800円!)か、
Udemy
で下記のコースを受講すると良いです★
✅1. フルスタックエンジニアが教える 即戦力Railsエンジニア養成講座
✅2. 【はむ式】ハンズオンで学ぶRuby on Rails 6【Dockerにも触れられる】
<- おすすめ。ハムさんはReactやTypeScriptの教材も非常に丁寧。
✅3. はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう
また、
Udemy
は定期的にセールをやっていますし(90%OFFとかもザラ)、
「30日間なら返金できる」ので、
満足できなかった時でも安心です。