正規表現が初めてです。私はNUMBER(19, 4)
を検索したいが、このメソッドは値(この場合は19,4
)を返さなければならない。しかし、私は結果として常に0
を得る!正規表現構文解析Double
int length =0;
length = patternLength(datatype,"^NUMBER\\((\\d+)\\,\\s*\\)$","NUMBER");
private static double patternLengthD(String datatype, String patternString, String startsWith) {
double length=0;
if (datatype.startsWith(startsWith)) {
Pattern patternA = Pattern.compile(patternString);
Matcher matcherA = patternA.matcher(datatype);
if (matcherA.find()) {
length = Double.parseDouble(matcherA.group(1));
}
}
return length;
}
あなたのパターンは「NUMBER」に続いて '('、数字の後にカンマ、スペースが続きますが、カンマの後ろに空白でないものがあればマッチさせようとしています – RealSkeptic