Следующая строка должна выглядеть следующим образом:
if ( m.find() ) {
Ты это делаешь?
Несколько других проблем: вы используете .
, чтобы соответствовать пробелам, окружающим двоеточие; если это всегда должен быть пробел, вы должны использовать +
(один или несколько пробелов) или \s+
(один или несколько пробельных символов). С другой стороны, точка между цифрами должна совпадать с литералом .
, поэтому вам следует избегать его: \.
Конечно, поскольку это литерал Java String, вам необходимо избежать обратной косой черты: \\s+
\\.
.
Вам не нужны квадратные скобки вокруг r
, и если вы не хотите совпадать с |
перед номером, вы должны изменить [+|-]
на [+-]
.
Хотя некоторые из упомянутых мною проблем могут привести к ложным срабатываниям, ни одна из них не помешает сопоставить действительные входные данные. Вот почему я подозреваю, что вы на самом деле не применяете регулярное выражение, вызывая find()
. Это распространенная ошибка.