スリ飯屋Malankaのフリーエンジニアな日々

IT実務未経験から約1年、東京でフリーランスのRuby on Railsエンジニアに転職。約2年半、大阪中崎町でスリランカカレーの間借りしてました。フリーランスエンジニアになるためのノウハウ、スリランカの事を発信していきます。

【正規表現】Rubyで、文字列がURLかどうかをチェックする

【正規表現】Rubyで、文字列がURLかどうかをチェックする




今すぐ登録したい方へ


このブログから登録の多いエージェントは下記の3つです★

(リンクをクリックすると公式サイトに飛びます)

【ダントツの1位】フォスターフリーランス【案件保有数5000件以上。業界25年の超老舗】

【僅差で2位】エミリーエンジニア【4人に1人が初めてのフリーランス】

【惜しくも3位】レバテックフリーランス【業界最大手。素早く手厚いフォローで案件参画】




こんにちは、mahです。


このブログでは、

僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、

ノウハウなどを書いていきます。


今回は、

  • 【正規表現】Rubyで、文字列がURLかどうかをチェックする

です。


【正規表現】Rubyで、文字列がURLかどうかをチェックする





結論


URI.regexp.match(検証したい文字列).nil?

で出来ます。


参考リンク


module URI (Ruby 3.0.0 リファレンスマニュアル)

URI.regexp (Ruby 3.0.0 リファレンスマニュアル)

Regexp#match (Ruby 3.0.0 リファレンスマニュアル)

Object#nil? (Ruby 3.0.0 リファレンスマニュアル)


解説


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




以上です。




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日間なら返金できる」ので、

満足できなかった時でも安心です。


f:id:mah666hhh:20201129193352p:plain


【公式】RailsHack(レイルズハック)

【公式】Udemyで学んでみる




最後に


下記の表に、

フリーランスエンジニア向けの人気エージェントをまとめてみました。


エージェント選びで悩んでいる方は是非参考にしてみてくださいね★





あわせて読みたい


www.malanka.tech


www.malanka.tech


www.malanka.tech


www.malanka.tech




最後までお読み頂きありがとうございました★

もしよかったらTwiiterのフォローもお願いします★