2011-02-07 122 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