出力は問題ありません。入力が「いい」もので、x/y の形式で、スペースがなく、整数値のみであると想定しています。
run:
272/273
matching group 1
272
273
matching group 2
BUILD SUCCESSFUL (total time: 0 seconds)
コード:
package stackoverflow;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static java.lang.System.out;
public class Ratio {
private static String line = "272/273";
public static void main(String[] args) {
out.println(line);
ratios(1);
ratios(2);
}
private static void ratios(int numeratorDenominator) {
out.println("matching group " + numeratorDenominator);
Pattern pattern = Pattern.compile("(\\w+)");
Matcher matcher;
matcher = pattern.matcher(line);
while (matcher.find()) {
try {
out.println(matcher.group(numeratorDenominator));
} catch (IndexOutOfBoundsException obe) {
}
}
}
}
しかし、それは完全に標準に達していません。分母を取得する別の、またはより良い方法はありますか? 私はあいまいな正規表現を探しているわけではありませんが、たとえば、行末に固定するには、最初の単語ではなく最後の単語を取得しますか?
私の目的では、数字も機能しますが、単語は問題なく機能します。/d だと思います。