0

この文字列を解析して、太字の数字を抽出する必要があります。1に適した正規表現がありません。useInputは="0067711990999999* 1955 * 0515070999999999999N9 + 01 * 23 * 1 + 99999999 ..";

Pattern pattern;
    String regex="\\s*-?\\d+(?:\\s*[-+/*]\\s*-?\\d+)+\\s*";
    pattern=Pattern.compile(regex);
    Matcher match = pattern.matcher(userInput);

問題は、太字の文字列に一致する正規表現が見つからないことです。

Map-Reduceプログラムでこれが必要です。

ありがとう

4

2 に答える 2

0

次のコード

String myString = "0067711990999999*1955*0515070999999999999N9+01*23*1+99999999";
// matches all number series (one or more consecutive digits) 
// between * characters. * normally matches any character and 
// so has to be escaped using \, which in a string becomes \\,
// i.e the regular expression is actually \*([0-9])\*
Pattern pattern = Pattern.compile("\\*([0-9]+)\\*");
Matcher matcher = pattern.matcher(myString);
while (matcher.find()) {
    // the parantheses in the regex creates a capturing group, i.e.
    // a substring within the match that can later be extracted. 
    // the "1" here means we're picking up the value of the first 
    // (and in this case, only) capturing group, which is the 
    // actual numbers (i.e. not including the * characters)
    System.out.println(matcher.group(1));
}

印刷します

1955
23

それはあなたが探しているものですか?

于 2012-04-24T06:57:33.900 に答える
0

.odtファイルを読んでいる場合は、おそらくhttp://www.jopendocument.org/が最適です。

于 2012-04-24T08:55:29.307 に答える