2011-02-07 181 views
0

我有一個帶有很多兩個字符串對的文件,即一個雙語文件。在一些條目上,目標字符串不包含等於src的空格的數目,後面是「:」讓兩個字符串匹配空格

例如,

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 2011-02-07 14:41:31

+0

@aioobe我需要在冒號後匹配src中的空格數目。例如。如果src在第二個冒號「:」之後有3個空格,那麼目標在第二個冒號後應該有3個空格 – rojanu 2011-02-07 15:21:05

回答

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 
1

試試這個: -

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

我需要的是匹配src的可用空間數量。例如,如果src味精有3個空格目標應該有3個空格,如果源有2個目標應該有2個 – rojanu 2011-02-07 15:04:10