正規表現でファイル名を置換する方法とおすすめツールについて
- 正規表現を使ったファイル名の置換について教えてください。イラストサイトPixivの画像のファイル名を置換したいです。
- ファイル管理の都合で保存形式を変更したくなりました。具体的には、p?illust-id? ?member-name? ?title?という形式から[?member-name?] p?illust-id? ?title?という形式に変更したいです。
- HDDにはたくさんの画像がA形式のファイル名で保存されているため、正規表現を使ってB形式のファイル名に一括で置換したいです。また、Flexible Renamer以外にもおすすめのツールがあれば教えてください。
- ベストアンサー
正規表現でファイル名を置換したい
正規表現を使ったファイル名の置換について、教えてください。 イラストサイトPixivの画像をFirefoxのアドオン「Ank Pixiv Tool」を使って p?illust-id? ?member-name? ?title? このような形式(仮にAとします)のファイル名で保存していたのですが ファイル管理の都合で [?member-name?] p?illust-id? ?title? こちらの形式(仮にBとします)で保存したくなりました。 ファイル名はこうなります。 A:p1234567 ユーザー名 - タイトル ~編.jpg B:[ユーザー名] p1234567 - タイトル ~編.jpg HDDにはA形式のファイル名で保存されている画像がたくさんあり なんとかしてB形式のファイル名に置換したいのですが 正規表現を使えばそのようなことは実現可能でしょうか? Flexible Renamerでは正規表現を使ったファイル名の置換ができるらしいのですが 肝心の正規表現の記述の仕方がわかりませんでした… それぞれのファイル名はどのように記述すればいいのでしょうか? また他に良いツールがありましたら教えてください。 よろしくお願いします。
- u_keyyy_2006
- お礼率48% (258/533)
- その他(ソフトウェア)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ツールはそれが一番というか、他にそんな芸当ができるファイラがあるのか知りません。 (^[a-z][0-9]{7}) (.+) - (.+)\.jpg [\2] \1 - \3.jpg これでうまくいきそうでした。 (^[a-z][0-9]{7}) (.+) - (.+)\.jpg ・^は文頭を表すが、いらないかも。 ・aからzのどれか┐ ・数字7桁 │→()で囲ったこの三つが置換後の\1に相当 ・半角スペース ┘ ・文字列 → 二つ目の()なので置換後の\2に相当 ・半角スペース ・半角ハイフン ・半角スペース ・文字列 → 置換後の\3に相当 ・拡張子(.は正規表現の記号なので\でエスケープ) あとは置換後のほうで入れ替えたり付け足したり。
関連するQ&A
- 正規表現で画像を置換
<img src="http://domain.com/test1/sample1/20090226234426-P1150071_s.jpg" width="160" height="120" alt="TEST" /> となっているものを、 <a href="http://domain.com/test1/sample1/20090226234426-P1150071_s.jpg">画像</a> と置換したいのですが、正規表現がいまいち理解できませんでしたので、 質問させていただきました。 PC用のコンテンツから携帯に移植する際に内容の圧縮の意味を込めて、作る必要がありましたので、お手数ですがよろしくお願いいたします。
- ベストアンサー
- PHP
- 正規表現で少し複雑な置換がしたい
Javaというよりも、正規表現について質問です。 (一応、言語はJavaで、String#replaceAllを使います) 以下のルールで与えられた文字列の置換を行う正規表現を考えていますが、なかなかうまくいきません。 1.正規表現で \w+:: にマッチする文字列を削除する。 2.ただし、'' (シングルクォーテーション)で囲われている文字列は 1.の対象としない 3.ただし、\' (シングルクォーテーションの前に\があった場合は) シングルクォーテーションと認識しない。 例: 置換前 A * B \'' CCC.DD::EEE' FFF.GGG::HH ' III' 置換後 A * B \'' CCC.DD::EEE' FFF.HH 'III' 色々試してみたのですが、どうしてもうまくいきません。 正規表現が得意な方、教えていただけますでしょうか・・?
- ベストアンサー
- Java
- 正規表現についての質問
正規表現についての質問です。 どのようにすればいいのか分からずで困っております。 (1) ##画像ファイル:"test.jpg"## という文字列の場合は、test.jpgに置換 (2) ##画像ファイル:"test.jpg":"aiueo.jpg"## という文字列の場合は、 aiueo.jpg 上記を満たす、正規表現での記述方法をどなたかご教授頂けないでしょうか。
- 締切済み
- PHP
- 正規表現の置換演算子に変数を埋め込むことをしたいのですが
正規表現の置換演算子に変数を埋め込むことをしたいのですが $a = 'abcd0001'; $b = '0005'; $a =~ s/abcd([0-9]{4})/abcd\$b/; #=> $a=[abcd$b] print "\$a=[$a]\n"; とすると、abcd$bとなります。 置換演算子1行で、abcd0005とする方法はあるのでしょうか?
- ベストアンサー
- Perl
- 正規表現についての質問です。
正規表現についての質問です。 現在、HTMLのimgタグを使って「/img/jpg/」ディレクトリにある画像ファイルを複数表示しています。 例) <img src="/img/jpg/1111.jpg" > <img src="/img/jpg/mm2222.jpg" > <img src="/img/jpg/kkkkk3333.jpg" > これをそれぞれ、以下のように置換したいと考えています。 例) <a href="http://www.xxxxx.jp/1111.jpg"><img src="/img/jpg/1111.jpg" width="240px"></a> <a href="http://www.xxxxx.jp/mm2222.jpg"><img src="/img/jpg/mm2222.jpg" width="240px"></a> <a href="http://www.xxxxx.jp/kkkkk3333.jpg"><img src="/img/jpg/kkkkk3333.jpg" width="240px"></a> imgタグをリンクタグで囲むのですが、リンク先URLには元々の画像ファイル名が使われています。また、imgタグには「width="240px"」が付加されています。 このような置換をPHP5で行うには、どのような正規表現を使用したらよろしいでしょうか。 宜しくお願い致します。
- 締切済み
- PHP
- 正規表現についての質問です。
正規表現についての質問です。 現在、HTMLのimgタグを使って「/img/jpg/」ディレクトリにある画像ファイルを複数表示しています。 例) <img src="/img/jpg/1111.jpg" > <img src="/img/jpg/mm2222.jpg" > <img src="/img/jpg/kkkkk3333.jpg" > これをそれぞれ、以下のように置換したいと考えています。 例) <a href="http://www.xxxxx.jp/1111.jpg"><img src="/img/jpg/1111.jpg" width="240px"></a> <a href="http://www.xxxxx.jp/mm2222.jpg"><img src="/img/jpg/mm2222.jpg" width="240px"></a> <a href="http://www.xxxxx.jp/kkkkk3333.jpg"><img src="/img/jpg/kkkkk3333.jpg" width="240px"></a> imgタグをリンクタグで囲むのですが、リンク先URLには元々の画像ファイル名が使われています。また、imgタグには「width="240px"」が付加されています。 このような置換をPHP5で行うには、どのような正規表現を使用したらよろしいでしょうか。 宜しくお願い致します。
- ベストアンサー
- PHP
- 正規表現で置換するための記述
正規表現について質問です。 テキストファイル内の文字列に対して、URL以外の「&」を「&」に置換したいのですが、 普通に置換してしまうと、URL内の「&」も全角になってしまうため、 正規表現で回避しようと考えています。 この場合、正規表現はどのように記述すればよいか、教えていただけると大変助かります。 ---------------------------------------------------------------------- (成功例) ガチャピン&ムック http://hogehoge.jp/index.html?k=2011&id=0414 ↓↓↓↓↓↓ ガチャピン&ムック http://hogehoge.jp/index.html?k=2011&id=0414 ---------------------------------------------------------------------- また、正規表現を使わなくてもできるなど、別の提案もOKです。 質問に不備があれば、その旨ご指摘お願いいたします。 正規表現勉強中のため、何卒よろしくお願いいたします。
- ベストアンサー
- その他([技術者向] コンピューター)
- 正規表現による置換
HTMLの構文も正規表現もよく理解しないままに作業をしているので とんちんかんなことを言っているのかもしれません 合わせて指摘してもらえると助かります Yahoo pipes 使ってる中で発生している現象です 目的としては HTMLタグから一部の文字列を取り出したく 変換元のXTMLは以下のようなものです(一部加工しています(***** の部分は隠しています) <a rel="nofollow" target="_blank" href="http://*****.html">抽出したい文字列</a> <img alt="new" class="new" height="15" src="http://*****.jpg" width="32"/> に対して 置換対象 .*html">(.*) 置換後 $1 を行ってからさらに 置換対象 (.*)<img.* 置換後 $1 としたところ 一応抽出はできました 本来 2回目は (.*)</a の気がするのですが1回目の結果を見るとなぜか</a> の部分もなくなってしまっています これも不思議なのですが 2回に分けて行うのは面倒なので1度で行いたいと思い 置換対象 .*html">(.*)<img.* 置換後 $1 としてみたのですが 求めている文字列の抽出をすることができませんでした .一応 *html">(.*)</a.* というのもやってみましたが結果は変わりませんでした これは当然の結果ななのか変換(処理)ツールの不具合なのかの判断ができません 分かる人がいたら教えてもらえないでしょうか 情報足りなければ補足させていただきます
- ベストアンサー
- その他(ソフトウェア)
- Excel : タグ付き正規表現による文字置換は可能?
アクティブセルの文字を、正規表現を利用して文字置換をしたいと考えています。 ただ、単純な文字置換ではなく、正規表現にマッチした文字列を記憶して、 置換後の文字列として呼び出して利用します。 秀丸エディタにあるような「タグ付き正規表現」を利用したいです。 Excelでも同じようなことは可能なのでしょうか? 一例として挙げますと、次のような文字置換です。 ●「?」の後に全角スペース以外の文字がある場合には、「?」の後に全角スペースを1つ入れる。 ●「?」の後に全角スペースが複数続く場合には、「?」の後の全角スペースを1つだけにする。 つまり、★を全角スペースとすると、次のようになります。 あいう?あいう → あいう?★あいう あいう?★★あいう → あいう?★あいう さらに、一例を挙げますと、 ●「AさんはBさんの友達です」というような文章を、「BさんはAさんの友達です」にする。 つまり、AとBに相当する部分を入れ替える。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 正規表現で置換
その1 $str = "ほげほげほげ<a href="http://xxxx.xxxx.xxx/xxxx/">ほげほげほげ</a>ほげほげ<br /><br /><img src="http://yyy.hoge.jp/hage/hige/xxxx.jpg" width="320" height="240" />ほげほげ"; ↓ $str = "ほげほげほげ<a href="http://xxxx.xxxx.xxx/xxxx/">ほげほげほげ</a>ほげほげ<br /><br /><img src="./foo/faa/fii/xxx.jpg" width="320" height="240" />ほげほげ"; その2 $str = "<img src="http://yyy.hoge.jp/hage/hige/xxxx.jpg" width="320" height="240" />ほげほげほげ<a href="http://xxxx.xxxx.xxx/xxxx/">ほげほげほげ</a>ほげほげ<br /><br /><img src="http://yyy.hoge.jp/hage/hige/xxxx.jpg" width="320" height="240" />ほげほげ"; ↓ $str = "<img src="./foo/xxxx.jpg" width="320" height="240" />ほげほげほげ<a href="http://xxxx.xxxx.xxx/xxxx/">ほげほげほげ</a>ほげほげ<br /><br /><img src="./foo/faa/fii/xxx.jpg" width="320" height="240" />ほげほげ"; このような文字列があった時に、次のように従って置換したいです。 1.imgのタグの内部に、「http://yyy.hoge.jp/hage/hige/xxx.jpg」という文字列があった場合、「./foo/faa/fii/xxx.jpg」という文字列に置き換える。 2.それ以外のURLの場合は置換しない。 3.その1とその2では「xxx.jpg」となっていますが、jpg以外の拡張子の場合も存在する。 4.日本語とURLの位置や個数はバラバラです。 5.URLの中のxxxとyyyは不定の文字列で、hage、hoge、hige、foo、faa、fiiは固定です。 6.使用している言語はPHPです。正規表現を1度だけでできれば理想的ですが、今回は2回に渡った処理でも問題ありません。 以上です。正しく処理できる正規表現、あるいは下記の正規表現の誤りを教えて頂ければ幸いです。 お手数ですが、よろしくお願い致します。 下記の方法では、うまくできませんでした。 $pattern = "/http:\/\/.*?hoge.jp\//"; $replacement = "./"; $str= preg_replace($pattern, $replacement, $str); $pattern2 = '/\/?hage\/hoge/'; $str = preg_replace($pattern2, '/foo/faa/fii', $str);
- ベストアンサー
- PHP
お礼
ご回答ありがとうございました。 おかげさまで整理するのに困っていた1000ものファイルを すべてリネームすることができました!