URLの変換No.04375
hrogawa さん 04/06/15 16:57
 
初心者です。
お知恵を貸してくださいませんか。
あるURLを別の書式に変換したいのです。

例えば,

http://aaaaa.bbbbb.co.jp/hou/cgi-bin/earch/md_contents.pl/0000166115.html?NE
WS_ID=0000166115&CONTENTS=0&MD_DHTML=%6d%64%5f%63%6f%6e%74%65%6e%74%73%2e%68
%74%6d%6c&MD_KNO=%30%30%30%30%31%36%36%31%31%35&bt=NIS&SYSTEM_ID=HO

という書式のURLを

http://aaaaa.bbbbb.co.jp/hou/cgi-bin/earch/md_pdf.pl/0000166115.pdf?NEWS_ID=
0000166115&CONTENTS=1&bt=NIS&SYSTEM_ID=HO

という書式に変換したいのです。
問題なのは「CONTENTS=0&」と「&bt=」にはさまれている「MD_DHTML=%6d%64%5f%63%6
f%6e%74%65%6e%74%73%2e%68%74%6d%6c&MD_KNO=%30%30%30%30%31%36%36%31%31%35」を
削除することですが,これがどうやればいいかわかりません。

教えていただけると幸いです。

[ ]
RE:04375 URLの変換→補足No.04376
hrogawa さん 04/06/15 20:47
 
先ほどの件ですが,正規表現を使って実現したいのです。
同様のパターンのURLが数百あります。


>初心者です。
>お知恵を貸してくださいませんか。
>あるURLを別の書式に変換したいのです。
>
>例えば,
>
>http://aaaaa.bbbbb.co.jp/hou/cgi-bin/earch/md_contents.pl/0000166115.html?N
>EWS_ID=0000166115&CONTENTS=0&MD_DHTML=%6d%64%5f%63%6f%6e%74%65%6e%74%73%2e%
>68%74%6d%6c&MD_KNO=%30%30%30%30%31%36%36%31%31%35&bt=NIS&SYSTEM_ID=HO
>
>という書式のURLを
>
>http://aaaaa.bbbbb.co.jp/hou/cgi-bin/earch/md_pdf.pl/0000166115.pdf?NEWS_ID
>=0000166115&CONTENTS=1&bt=NIS&SYSTEM_ID=HO
>
>という書式に変換したいのです。
>問題なのは「CONTENTS=0&」と「&bt=」にはさまれている「MD_DHTML=%6d%64%5f%63%
>6f%6e%74%65%6e%74%73%2e%68%74%6d%6c&MD_KNO=%30%30%30%30%31%36%36%31%31%35」
>を削除することですが,これがどうやればいいかわかりません。
>
>教えていただけると幸いです。

[ ]
RE:04375 URLの変換No.04377
アルビレオ さん 04/06/15 21:26
 
秀丸ユーザーのアルビレオです。

>問題なのは「CONTENTS=0&」と「&bt=」にはさまれている「MD_DHTML=%6d%64%5f%63%6
>f%6e%74%65%6e%74%73%2e%68%74%6d%6c&MD_KNO=%30%30%30%30%31%36%36%31%31%35」を
>削除することですが,これがどうやればいいかわかりません。

特定パラメータの削除だけなら
 検索:&MD_(DHTML|KNO)=[^&]*
 置換:
でほとんどいけると思います。

一回の置換でパス部分なども置換するなら
 検索:/md_contents\.pl/\f[0-9]+\.\fhtml\f\?.+\f&MD_DHTML=[^&]*&MD_KNO=[^&]*
 置換:/md_pdf\.pl/\1pdf\3
となります。

ただし後者ではパラメータの順番が変わったり省略されててしまうと、うまく対
応できません。

[ ]
RE:04377 ありがとうございました!No.04378
hrogawa さん 04/06/16 12:00
 
ありがとうございました。
教えていただいた以下の正規表現でなんとかなりそうです。

>特定パラメータの削除だけなら
> 検索:&MD_(DHTML|KNO)=[^&]*
> 置換:
>でほとんどいけると思います。
>
>一回の置換でパス部分なども置換するなら
> 検索:/md_contents\.pl/\f[0-9]+\.\fhtml\f\?.+\f&MD_DHTML=[^&]*&MD_KNO=[^&]*
> 置換:/md_pdf\.pl/\1pdf\3


[ ]