Чтобы соответствовать следующим двоичным десятичным форматам 1001
, 10.01
, .1001
, 1001.0
, вы можете использовать следующее:
См. Здесь регулярное выражение
^(?:[01]+|[01]*\.[01]+)$
Как это работает:
^
Устанавливает позицию в начале строки (?:[01]+|[01]*\.[01]+)
Соответствует любой из следующих опций - Вариант 1:
[01]+
Соответствует любой двоичной цифре (0 или 1) один или несколько раз - Вариант 2:
[01]*\.[01]+
Соответствует любой двоичной цифре (0 или 1) ноль или более раз, после чего следуетбуквенный символ точки .
, затем на одну или несколько двоичных цифр (0 или 1) один или несколько раз.
$
Устанавливает позицию в конце строки
Обратите внимание, что вам необходимо избегать обратной косой черты в Java ^(?:[01]+|[01]*\\.[01]+)$
.
Также обратите внимание, что это не будет соответствовать 0.
(или аналогичным 1.
, 11.
,и т.д.), поскольку этот случай явно не включен в вопрос. Чтобы соответствовать этому случаю, вы можете использовать (?:[01]+\.?|[01]*\.[01]+)
. Эти два шаблона регулярных выражений не позволяют сопоставлять строку .
.
Примечание: слишком часто пользователи публикуют вопросы без достаточной информации и никогда не обновляют свои вопросы. Спасибо за чтение наших комментариев и внесение изменений в ваш вопрос! Вы помогаете улучшить это сообщество.