1

我是 Java 正则表达式的新手,无法使其正常工作。以下代码表示未找到匹配项。

pattern = Pattern.compile("EN\\( [ -][0-5]\\)= \\d+.?\\d*E[+-]\\d{2}");
match = pattern.matcher("EN(  0)= 0.000000E+00");
String result = match.group();

据我所知,这应该有效。我一直在使用有关正则表达式的 Oracle java 教程来指导我。任何和所有的帮助表示赞赏。

4

2 回答 2

2

快到了,你只需要:

Matcher match = pattern.matcher("EN(  0)= 0.000000E+00");
match.find(); // <-- missing
String result = match.group();
于 2012-06-29T23:42:26.050 回答
1

-in[ -]是特殊字符,因此您必须使用[ \\-]

Pattern pattern = Pattern.compile("EN\\( [ \\-][0-5]\\)= \\d+.?\\d*E[+\\-]\\d{2}");
Matcher match = pattern.matcher("EN(  0)= 0.000000E+00");
if (match.find())
    System.out.println(match.group());
于 2012-06-29T23:42:36.140 回答