質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

4987閲覧

GASの正規表現でhref属性のURLを取得したい

sunglass

総合スコア303

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2019/12/08 16:29

listの中にある「href="https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&aucminprice=3000&b=101&n=100&amp」のリンクを正規表現で取得したいです。

var list = [ <span class="Pager__link Pager__link--active">1</span>,<a class="Pager__link" data-ylk="rsec:pagination;slk:number;pos:2" href="https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=101&amp;n=100&amp;rewrite_category=0">2</a>,<a class="Pager__link" data-ylk="rsec:pagination;slk:number;pos:3" href="https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=201&amp;n=100&amp;rewrite_category=0">3</a>,<a class="Pager__link" data-ylk="rsec:pagination;slk:number;pos:4" href="https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=301&amp;n=100&amp;rewrite_category=0">4</a>,<a class="Pager__link" data-ylk="rsec:pagination;slk:number;pos:5" href="https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=401&amp;n=100&amp;rewrite_category=0">5</a>, ...] var urls = list.match(/<a href="(.+)">/); Logger.log(urls); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ご質問にあるスクリプトからはvar list = [...]が何を意味しているのか分かりませんが、もしも[<span class=" ... </a>]の一つの文字列からhrefの値を取得したいようであれば、次のようなスクリプトはいかがでしょうか。ここで使用した正規表現はhttps://.+?(?=")です。

変更したスクリプト

javascript

1var list = '[<span class="Pager__link Pager__link--active">1</span>,<a class="Pager__link" data-ylk="rsec:pagination;slk:number;pos:2" href="https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=101&amp;n=100&amp;rewrite_category=0">2</a>,<a class="Pager__link" data-ylk="rsec:pagination;slk:number;pos:3" href="https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=201&amp;n=100&amp;rewrite_category=0">3</a>,<a class="Pager__link" data-ylk="rsec:pagination;slk:number;pos:4" href="https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=301&amp;n=100&amp;rewrite_category=0">4</a>,<a class="Pager__link" data-ylk="rsec:pagination;slk:number;pos:5" href="https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=401&amp;n=100&amp;rewrite_category=0">5</a>, ...]'; 2var urls = list.match(/https://.+?(?=")/g); 3Logger.log(urls);

結果

[ "https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=101&amp;n=100&amp;rewrite_category=0", "https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=201&amp;n=100&amp;rewrite_category=0", "https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=301&amp;n=100&amp;rewrite_category=0", "https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=401&amp;n=100&amp;rewrite_category=0" ]

今の場合、複数のアプローチがあると思いますので上記をそれらの一つとしてお考え下さい。

投稿2019/12/08 22:56

kisojin

総合スコア899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sunglass

2019/12/09 05:15

回答ありがとうございます! var urls = list.match(/<a href="(.+)">/); でやってました。。 無事解決しました。
sunglass

2019/12/09 06:05

つづき >今の場合、複数のアプローチがあると思いますので上記をそれらの一つとしてお考え下さい。 以下の方法も正しいという事でしょうか。 https://auctions.yahoo.co.jp/...以下の変動するページング部分を加算処理で生成?するパターンです。。 for (var i = 1; i <=1000; i+=100){ Logger.log('https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&aucminprice=3000&b='+[i]+'&n=100&rewrite_category=0'); } お手隙の際にでもご確認ください。 よろしくお願いします。
kisojin

2019/12/10 02:04

ご返事ありがとうございます。URLが固定されているようであればそのようなアプローチも可能と思われます。また、今の場合、アプローチの正誤判断はご自身のやりたいことができているかどうかでも良いと思われます。
sunglass

2019/12/10 03:31

>アプローチの正誤判断はご自身のやりたいことができているかどうかでも良いと思われます。 PPP的に書くと(加算処理せず質問内容の処理でいくと・・・) var list = '[<span class="Pager__link Pager__link--active">1</span>,<a class="Pager__link" data-ylk="rsec:pagination;slk:number;pos:2" href="https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=101&amp;n=100&amp;rewrite_category=0">2</a>,<a class="Pager__link" data-ylk="rsec:pagination;slk:number;pos:3" href="https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=201&amp;n=100&amp;rewrite_category=0">3</a>,<a class="Pager__link" data-ylk="rsec:pagination;slk:number;pos:4" href="https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=301&amp;n=100&amp;rewrite_category=0">4</a>,<a class="Pager__link" data-ylk="rsec:pagination;slk:number;pos:5" href="https://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176&amp;aucminprice=3000&amp;b=401&amp;n=100&amp;rewrite_category=0">5</a>, ...]'; var urls = list.match(/https://.+?(?=")/g); // その取得したリンクの中からhttps://auctions.yahoo.co.jp/closedsearch/closedsearch?auccat=23176が含まれていればtrue // それ以外はfales みたいな書き方でしょうか。 再度質問投稿しようと思います。 回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問