質問: Rubyも正規表現も初めてで行き詰っております。 以下のような文章があります。 ``` aaaaabbbbbbccccddddd;https://www.youtube.com;hoehogehoge_embedded xxxx,yyyy,zzzz ``` この中から、 「https://www.youtube.com」~「_embedded」 までの 「https://www.youtube.com;hoehogehoge;_embedded」 を取得したいです。 以下のようにしたのですが、 ``` str.match(/.*_embedded;/) ``` 前全部が取得されてしまいましたorz ``` aaaaabbbbbbccccddddd;https://www.youtube.com;hoehogehoge;_embedded ``` 正しい記述を教えて下さい。 宜しくお願い致します。 【同日追記】 「https://www.youtube.com」~「_embedded」の前後は、実際には特に決まった形式はなく、 日本語の文章などが入ります。 【例文】 以下のような感じです。 お早う。https://www.yahoo.co.jp こんにちは。 https://www.youtube.com;aaaxxxxxxxxhohhohohooho_embedded hhh xxxxYYY https://www.google.com/ dddd テストテスト。
回答: str.match(/https:\/\/www\.youtube\.com.*?_embedded/) ではどうでしょうか。 ``` str = 'aaaaabbbbbbccccddddd;https://www.youtube.com;hoehogehoge_embedded xxxx,yyyy,zzzz' result = str.match(/https:\/\/www\.youtube\.com.*?_embedded/) puts result ``` 実行結果 https://www.youtube.com;hoehogehoge_embedded