У меня есть шаблон, который я хочу сопоставить, используя java регулярное выражение. Шаблон иногда имеет скобки, а иногда его нет. Пример шаблона:
Test string: (2555.45)
Test string: 50.00
Test string: 2345,46.00
Я написал приведенную ниже программу, но почему-то она не берет конечные скобки при попытке сопоставления.
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main( String args[] ) {
String re = ".*Test string:\\s+([^\\\\d]+\\d[.,]\\d+).*";
Pattern p = Pattern.compile(re);
List<String> inputs = Arrays.asList( "Test string: (2555.45)", "Test string: 50.00", "Test string: 2345,46.00", "Test string: 620.26","Test string: 37687.20" );
//for (String s : arr) {
// System.out.println(s.matches(re));
//}
inputs.forEach(in->{
Matcher m = p.matcher(in);
if (m.matches()) {
System.out.println(m.group(1));
}
});
}
}
Чего мне здесь не хватает. Любая подсказка будет полезна