いくつかの仮定を立てましょう。
- 名前の最初の部分に「-」を含めることはできません
- すべてのファイルは「.epub」で終わります
その場合、次のものを置き換えることができます:
^(.*?)\s*-\s*(.*?)\.epub$
「$2
-.epub $1
」付き。
Java での概念実証を次に示します (2 つのバックスラッシュは無視してください。これは単なる Java 構文です)。
public static void main(String[] args) throws Exception {
final String[] testData = {"A Knight dogs of the Word - Terry Brooks.epub", "Enders Game - Orson Scott Card.epub"};
final Pattern patt = Pattern.compile("^(.*?)\\s*-\\s*(.*?)\\.epub$");
for(final String s : testData) {
final Matcher m = patt.matcher(s);
if(m.matches()) {
System.out.println(m.group(2) + " - "+ m.group(1) + ".epub");
}
}
}
出力:
Terry Brooks - A Knight dogs of the Word.epub
Orson Scott Card - Enders Game.epub
他の人が指摘しているように、正規表現は必ずしも仕事に適したツールではなく、それはちょっとした問題です。UNIX ユーティリティには、はるかに少ない労力でこれを行うユーティリティがたくさんあります。次に例を示します。
- mmv
- プレーンバッシュ