[ 新規に投稿する ]

renameReplaceについてNo.11575
tomato さん 25/05/09 16:27 [ コメントを投稿する ]
  お世話になります。

2025_05_09_1_test.txt
test_20250509_1.txt
上記ファイル名の日付を削除するスクリプトを作っています。

renameReplaceの第一引数に\dを使った正規表現を設定すると
動作しません。[0-9]を使用すると動作します。
具体的には、

Remove_Date_Main();
endMacro();

function Remove_Date_Main() 
{

 var pt_date;
 pt_date = "\d{4}_\d{2}_\d{2}_\d_|_\d{8}_\d";
// pt_date = "[0-9]{4}_[0-9]{2}_[0-9]{2}_[0-9]_|_[0-9]{8}_[0-9]";
 renameReplace(pt_date, "", 0x00000012);

 return;
 
}

秀丸エディタの検索機能で\d{4}_\d{2}_\d{2}_\d_|_\d{8}_\dを
使って検索すると日付の部分をヒットさせることができました。
私の設定の仕方の間違っているのでしょうか?
正直な話、正規表現は勉強したばかりなのでよくわかっていない
部分があります。

vbsの方は両方とも動作しませんでした。
別の置換を確かめたのですが、拡張子を含む場合の方も
動作しませんでした。(vbsの方)
申し訳ありませんが、よろしくお願いします。
[ ]
RE:11575 renameReplaceについてNo.11577
秀丸担当 さん 25/05/09 17:16 [ コメントを投稿する ]
  秀丸エディタのマクロでもそうですが、JavaScriptでも""の中に\を記述する場合は、\\と書く必要があります。
 pt_date = "\\d{4}_\\d{2}_\\d{2}_\\d_|_\\d{8}_\\d";
というようにするといいです。

vbsの文法は私もよくわかっていないところがありますが、とりあえず以下のようにしたらできました。
RenameReplace "[0-9]{4}_[0-9]{2}_[0-9]{2}_[0-9]_|_[0-9]{8}_[0-9]", "", &H00000012
[ ]
RE:11577 renameReplaceについてNo.11580
tomato さん 25/05/09 18:55 [ コメントを投稿する ]
  >秀丸エディタのマクロでもそうですが、JavaScriptでも""の中に\を記述する場合は、\\と書く必要があります。
> pt_date = "\\d{4}_\\d{2}_\\d{2}_\\d_|_\\d{8}_\\d";
>というようにするといいです。

ありがとうございます。解決しました。

>vbsの文法は私もよくわかっていないところがありますが、とりあえず以下のようにしたらできました。
>RenameReplace "[0-9]{4}_[0-9]{2}_[0-9]{2}_[0-9]_|_[0-9]{8}_[0-9]", "", &H00000012

ありがとうございます。解決しました。

vbsの場合、[\d]を使用する時は逆に
"\d{4}_\d{2}_\d{2}_\d_|_\d{8}_\d"
でないと動作しないみたいです。
[ ]

[ 新規に投稿する ]