FaEditは、更新日時の判定を正規表現検索により行うことができます。"日付による判定"で更新日時が取得できないような場合は、"正規表現による判定"を試してみる事をおすすめします。"サイズの変化による判定"は最後の手段です。

前準備

URLアイテムを選択し、プロパティダイアログで、チェックタブを表示します。リクエスト方法で、"GETリクエストのみ"を選択します。判定方法で、"正規表現のみ"にチェックを入れます。

検索文字列の指定

URLをブラウザで表示してみて、更新日時を表している文字列があるかどうかを調べます。ニュースサイトや日記ページの場合、ページの先頭の方に、 2001年8月1日や、2001年8月1日 10時23分といった文字列がある事が多いと思います(ない場合は正規表現による判定は使えません)。 時刻文字列を見つけたら、その文字列に一致する正規表現を、検索エディットボックスに入力します。例えば"2001年8月1日 10時23分"という時刻文字列には、次のような正規表現が一致します。

  • (\d\d\d\d)年(\d+)月(\d+)日.+(\d+)時(\d+)分

正規表現に馴染みのない方に簡単に説明すると、\dは1つの数字に一致します。 \d+は数字の一回以上の繰り返しに一致します。.+は任意の文字の一回以上の繰り返しに一致します。全体としてこの正規表現は、"2001年8月1日 10時23分"に一致する事する事がわかると思います。

置換文字列の指定

置換文字列は、検索した文字列を、FaEditが解析可能な時刻文字列に変換するためにあります。FaEditが解析可能な時刻文字列は、例えば、"YYYY/MM/DD hh:mm:ss" といった形式の文字列です(具体的には"1999/12/31 11:23:45"という文字列なら解釈可能です)。 例の正規表現検索文字列"(\d\d\d\d)年(\d+)月(\d+)日.+(\d+)時(\d+)分"の場合、置換文字列は次のようになります。

  • $1/$2/$3 $4:$5:00

検索結果に対して置換が行われるとき、$1は最初の括弧の中身に置換され2001になります。$2は次の括弧の中身に置換され8になります。このように置換されていき結局、"2001年8月1日 10時23分"という文字列が、"2001/8/1 10:23:00"という文字列に変換される事になります。例の場合元の文字列に秒の部分がないため、置換後の文字の秒の部分を0秒固定としている事に注意してください。 置換後の文字列"2001/8/1 10:23:00"は "YYYY/MM/DD hh:mm:ss"形式ですので FaEditが解析する事ができ、更新日時として取得する事ができるのです。

検索実行

検索、置換文字列を入力した後は、検索実行ボタンを押して、実際にうまく動くかどうかを確認してみましょう。 検索実行ボタンを押すと、URLで指定されたページの内容をネットワークごしに取得して、別ウィンドウに表示します。検索に一致した部分があればその部分がハイライト表示されます。検索→置換がうまくいき、時刻文字列の解析まで成功した場合は、ステータスバーの部分に解析後の時刻が表示されます。

テンプレート

検索、置換文字列を頭から書くのは間違えやすいし、めんどくさいです。そのような場合テンプレートボタンを押して正規表現テンプレートから使えそうなものを選択してみてください。テンプレートファイル conf/regex.txt には WWWCのMETAチェックに対応したものなど汎用性がありそうなものがあらかじめいくつか登録されています。

regex.txtの書式

regex.txtの各行の書式は次の通りです(項目の区切りはタブ)

名前  サンプル      サンプルのUNIX時間    検索文字列      置換文字列

FaEdit読み込み時に、実際にサンプルがサンプルのUNIX時間に変換されるかどうかチェックされます。チェックした結果が一致しないようならばその行は捨てられます(手間がかかるので今後変更になる可能性もあり) 例えば、下のテンプレートでは、サンプルの時刻文字列は、2002/8/9 0:0:0に変換され、この時刻文字列(日本時間)に対応したUNIX時間を求めると1028818800 になります(rubyならばTime.local(2002,8,9,0,0,0).to_iを実行すれば簡単に求める事ができます)。

年月日	2002.8.9	1028818800	(\d\d\d\d)[-:./](\d+)[-:./](\d+)	$1/$2/$3 00:00:00

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-04-13 (水) 16:48:17