こんにちは、mahです。
このブログでは、僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、ノウハウなどを書いていきます。
今回は、aタグからhref属性の値を正規表現で抽出する方法 についてです。
一発で抽出出来るヘルパーメソッドがあるかと思いましたが、見つけられませんでした...笑
ただ、調べてるとドンピシャなのを見つけたのでご紹介します。
aタグからhref属性の値を正規表現で抜き出す方法
結論
結論から言うと、
- href\s=\s"([^"]*)"
という正規表現を使うことで実現可能です。
このstack over flowの回答がドンピシャでした。
You should be able to use a regular expression like this:
href\s=\s"([^"]*)" See this Rubular example of that expression.
The capture group will give you the URL, e.g.:
link = "<a href=\"https://www.congress.gov/bill/93rd-congress/house-bill/11461\">H.R.11461</a>" match = /href\s*=\s*"([^"]*)"/.match(link) if match url = match[1] end
やり方
res = /href\s*=\s*"([^"]*)"/.match(対象のaタグ)
のように記述。res[1]
のようにすると、aタグのhref属性が取り出せます。
href属性に /aboutをもつaタグから、/aboutを正規表現で抽出するサンプル
Rails Consoleで確認します。
[19] pry(#<#<Class:0x00007fa4bff08f78>>)> res = /href\s*=\s*"([^"]*)"/.match('<a class="global-header-link" href="/about" target="_blank" rel="noopener">About</a>') => #<MatchData "href=\"/about\"" 1:"/about"> [20] pry(#<#<Class:0x00007fa4bff08f78>>)> res[1] => "/about"
このように、href属性の /about を抽出することが出来ました。
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日間なら返金できる」ので、
満足できなかった時でも安心です。
【公式】RailsHack(レイルズハック)
【公式】Udemyで学んでみる