在我的页面中,我有几个具有相同模式的值,如${rate+0.0020D2},${rate-0.4002D3},${rate+0.2003D4}
。
基本上,模式是${[rate][+ or - sign][a neumeric value ][D2 or D3 or D4]}
。
所以我想在我的jsp中找到所有具有这些模式的值,并希望将它们存储在数组中。
必须应用哪种正则表达式模式才能找出此模式的值。
答案 0 :(得分:4)
可能有更好的方法来做到这一点,但这是我的基本看法......
String regExp = "\\$\\{rate[+-]\\d+(\\.\\d+)?D[0-9]\\}";
String value = "${rate+0.0020D2},banana,${rate-0.4002D3},${rate+0.2003D4},${rate+bananD4},${rate+.123.415D4}";
Pattern pattern = Pattern.compile(regExp);
Matcher matcher = pattern.matcher(value);
String match = null;
List<String> matches = new ArrayList<String>(5);
while (matcher.find()) {
int startIndex = matcher.start();
int endIndex = matcher.end();
match = matcher.group();
matches.add(match);
}
String[] results = matches.toArray(new String[0]);
System.out.println(Arrays.toString(results));
将输出
[${rate+0.0020D2}, ${rate-0.4002D3}, ${rate+0.2003D4}]
答案 1 :(得分:2)