Соответствует регулярному выражению цифры, запятая и точка с запятой? - PullRequest
23 голосов
/ 16 марта 2011

Какое регулярное выражение будет соответствовать строке, содержащей только цифры от 0 до 9, запятую и точку с запятой? Я ищу использовать его в Java, например, так:

word.matches("^[1-9,;]$") //Or something like that...

Я новичок в регулярных выражениях.

Ответы [ 6 ]

48 голосов
/ 16 марта 2011

У вас это почти получилось, вы просто опустили 0 и забыли квантификатор.

word.matches("^[0-9,;]+$")
23 голосов
/ 16 марта 2011

Вы находитесь на 90% пути.

^[0-9,;]+$

Начиная с карата ^ обозначает начало строки.

[обозначает набор символов

0-9 обозначает символы от 0 до 9, запятая , обозначает запятую, а точка с запятой обозначает ;.

Закрытие ] обозначаетконец набора символов.

Знак плюс + указывает, что должен присутствовать один или несколько «предыдущих элементов».В этом случае это означает, что в ранее объявленном наборе символов должен быть один или несколько символов.

Доллар $ обозначает конец строки.

4 голосов
/ 16 марта 2011

Попробуйте word.matches("^[0-9,;]+$");

2 голосов
/ 16 марта 2011

word.matches("^[0-9,;]+$"); вы были почти там

1 голос
/ 16 марта 2011

Ваше текущее регулярное выражение будет соответствовать только 1 символу.вам нужно либо * (включая пустую строку), либо + (хотя бы один), чтобы соответствовать нескольким символам, а цифры имеют ярлык: \ d (нужно \\ в строке).

word.matches("^[\\d,;]+$") 

Документация по шаблонудовольно хорошо: http://download.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html

Также вы можете попробовать свои регулярные выражения онлайн по адресу: http://www.regexplanet.com/simple/index.html

0 голосов
/ 16 марта 2011
boolean foundMatch = Pattern.matches("[0-9,;]+", "131;23,87");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...