0

正規表現に問題があります。変更が必要なファイル名の画像がいくつかあります。私はそれらを手作業で行いました。それは簡単で痛みのないものでした。しかし、JavaScript を使用した単純な置換正規表現として何をする必要があるかを知りたかったのです。そして、それはそれがうまくいかないときです。この画像は「muti Blossom 02.png」という名前で、サイズを変更して「iOS_multi_BLOSSOM_2048.jpg」という名前の JPEG として保存されます。他のものは同じ形ですが、名詞が異なります。冬、葉、サーカスなど

ファイル名は次のように構成されています。

  • 先頭に「mutli」(小文字)、
  • 空白、
  • 名詞(小文字)、
  • 空白、
  • 数字 (前に 0 がある場合があり、1 桁または 2 桁の場合があります)、
  • .png または .psd (小文字) のファイル拡張子。

次に、次のように変更する必要があります。

  • iOS_multi (キャメルケース表記)、
  • 名詞(大文字)、
  • 2048 (新しい固定サイズ)、
  • 新しいファイル拡張子 .jpg (小文字)。

([az]+\s) が「multi」に一致し、(\s\d+.[az]+$) が数字とファイル拡張子に一致することはわかっていますが、途中のビットをうまく一致させる方法がわかりません同じように。そして、名詞を大文字にします。しかし、私はそうする人が他にいると確信しています。ありがとうございました。

4

2 に答える 2

1

JavaScript正規表現replaceでは、置換テキストを大文字にすることができないため、これをaで行うことはできません。ただし、matchメソッドは配列を返し、それを操作できます。

var oldImageName = "multi blossom 02.png";   
var matches = oldImageName.match(/multi (\w+) \d{1,2}\.(?:png|psd)/);   
var newImageName = "iOS_multi_" + matches[1].toUpperCase() + "_2048.jpg";

注:これは、「名詞」がスペースのない単一の単語であることを前提としています

于 2012-11-23T11:57:17.670 に答える