スポンサーリンク

正規表現置換でアマゾンの長いURLから必要な部分のみ抜き出す

以下のようなAmazonの長いURLから必要な部分のみ抜き出す正規表現の置換を考える。

サクラエディタ Onigmo 5.15.0で検証済

https://www.amazon.co.jp/%E5%B1%B1%E5%96%84-YAMAZEN-%E3%82%B7%E3%83%A5%E3%83%BC%E3%82%BA%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9-CSB-6045-%E3%83%9B%E3%83%AF%E3%82%A4%E3%83%882%E5%80%8B%E7%B5%84/dp/B00IFW4NH6/ref=pd_sbs_13?pd_rd_w=N2cT0&pf_rd_p=c295905f-82f9-4d73-8142-c393a4211258&pf_rd_r=H9BGRBT50Y7849HH6QVD&pd_rd_r=12d8e31f-f259-4b8c-81e3-be65b74fee62&pd_rd_wg=bPsS6&pd_rd_i=B00IFW4NH6&psc=1

置換前↓

(https://www.amazon.co.jp)/[^/].*(/dp/.*/).*

置換後↓
$1$2

 

置換結果

https://www.amazon.co.jp/dp/B00IFW4NH6/

 

必要な部分のみにできた。

 

(https://www.amazon.co.jp)/[^/].*(/dp/.*/).*

上記の置換前の文字列について少し解説。


(https://www.amazon.co.jp)/  は固定文字列。キャプチャする為に括弧で括っている。変数$1にキャプチャされる。

 

[^/] スラッシュ以外の文字列のパターン。
.* をつけて、スラッシュ外の文字列の0回以上の繰り返し、となる。

 

/dp/ 固定文字列。

.*/  何らかの文字列のあとスラッシュ

括弧で括っているので変数$2に入る。上記URLだと「/dp/B00IFW4NH6/」が入る。

 

.* 何らかの文字列の0回以上の繰り返し。これは捨てる部分。

 

 

なんでこうなるのかは以下書籍を読めばわかる。

amzn.to