输出很好,我假设输入是“nice”并且格式为 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) {
}
}
}
}
但是,它并不完全符合标准。有没有不同的或更好的方法来获得分母?我不是在寻找一些晦涩的正则表达式,但是,例如,要锚定到行尾,获取最后一个单词而不是第一个单词?
就我的目的而言,word 可以正常工作,尽管数字也可以。/d 我想。