【发布时间】:2022-01-07 00:21:25
【问题描述】:
我正在接受来自用户输入的字符串并尝试确定它是否与正则表达式匹配。如果是这样,我需要从输入中提取某些匹配的组并进行处理。
有效的字符串必须是以下形式:
- 1 个数字,可以由整数或浮点数(小数点)组成
- 后跟连字符 ("
-") - 后跟另一个数字(与第一个相同)
-
可选以百分号结尾(“
%”)
有效字符串输入示例:
- “6-9”
- “6.5-9”
- “6-9.24”
- “6-9%”
- “6.5-9%”
- “6.24-9.23%”
我的最佳尝试:
String numRange = getFromUser();
Pattern pattern = Pattern.compile("([0-9]{1,2}\.[0-9]{1,2})-([0-9]{1,2}\.[0-9]{1,2})[%]*");
Matcher matcher = pattern.matcher(numRange);
if (matcher.matches()) {
String lowRangeVal = matcher.group(1);
String highRangeVal = matcher.group(2);
// continue processing here
}
不起作用。谁能发现我哪里出错了?
【问题讨论】: