使空格匹配两个字符串

时间:2011-02-07 14:37:30

标签: java string

我有一个包含很多两对字符串的文件,即一个双语文件。在某些条目中,目标字符串在“:”

之后不包含等于src的空格数

E.g。

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

任何想法?

2 个答案:

答案 0 :(得分:1)

试试这个: -

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

答案 1 :(得分: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