2011-02-07 27 views
0

2組の文字列、つまりバイリンガルファイルがたくさんあるファイルがあります。いくつかのエントリでは、ターゲット文字列に ":"の後にsrcに等しいスペースが含まれません。空白を2つの文字列に一致させる

など

src= Job %1$s: Bad record length at tape record number/block number: %2$s adddd: %3$s 
tgt= Travail %1$s : longueur d'enregistrement incorrecte dans le numéro d'enregistrement/de bloc :%2$s de la bande adddd: %3$s. 

私は: %2$s

任意のアイデアであることを:%2$sが必要ですか?

+0

を何を成し遂げるために必要ですか?より包括的かつ完全な例を教えてください。 – aioobe

+0

@aioobeターゲットにコロンの後にsrcのスペースの数を合わせる必要があります。例えば。 srcに2番目のコロン ":"の後に3つのスペースがある場合、ターゲットは2番目のコロンの後に3つのスペースを持つべきです – rojanu

答えて

1

この状態で始める必要があります。

import java.util.regex.*; 

public class Test { 

    public static void main(String[] args) { 

     String src = "abc : def"; // two spaces after colon. 
     String tgt = "ghi : jkl"; // three spaces after colon. 

     Pattern spaces = Pattern.compile("([^:]*:)(\\s*)(.*)"); 

     Matcher mSrc = spaces.matcher(src); 
     Matcher mTgt = spaces.matcher(tgt); 

     mSrc.matches(); 
     mTgt.matches(); 

     System.out.println("Spaces in src: " + mSrc.group(2).length()); 
     System.out.println("Spaces in tgt: " + mTgt.group(2).length()); 

     System.out.println("Target with src's number of spaces: " + 
          mTgt.group(1) + mSrc.group(2) + mTgt.group(3)); 
    } 
} 

プリント:

Spaces in src: 2 
Spaces in tgt: 3 
Target with src's number of spaces: ghi : jkl 
+0

コードをお寄せいただきありがとうございます。 – rojanu

1

はこれを試してください: -

src = src.replaceAll(":%", ": %") 
+0

私が必要とするのは、srcで利用可能なスペースの数と一致させることです。たとえば、src msgに3つのスペースがある場合、ターゲットには3つのスペースが必要です。ソースには2つのターゲットが必要です。2 – rojanu

関連する問題