Регулярное сопоставление заглавных букв, цифр и периода - PullRequest
2 голосов
/ 09 марта 2012

Я пытаюсь увидеть, содержит ли вход только заглавные буквы, цифры и точку в регулярном выражении. Каким будет шаблон регулярного выражения для этого в Java?

Есть ли какие-нибудь руководства по созданию этого регулярного выражения, даже некоторые онлайн-инструменты?

Также возможно ли проверить длину строки не более 50 с помощью регулярных выражений?

Ответы [ 6 ]

4 голосов
/ 09 марта 2012

Это Unicode ответ:

^[\p{Lu}\p{Nd}.]{0,50}$

From регулярные-выражения.info

\ p {Lu} или \ p {Uppercase_Letter}: заглавная буква со строчным вариантом.

\ p {Nd} или \ p {Decimal_Digit_Number}: цифры от нуля до девяти в любом сценарии, кроме идеографических.

^ и $ - начало и конец строки

3 голосов
/ 09 марта 2012

Шаблон регулярного выражения:

Pattern.compile("^[A-Z\\d.]*$")

Чтобы проверить длину строки:

Pattern.compile("^.{0,50}$")

Оба вместе взятые:

Pattern.compile("^[A-Z\\d.]{0,50}$")

Хотя я бы не использовал регулярные выражения для проверки длины на вашем месте, просто вызовите .length() в строке.

1 голос
/ 09 марта 2012

Регулярные выражения в Java имеют много общего с другими языками, когда речь идет о простом синтаксисе, с некоторыми предопределенными классами символов, которые добавляют больше, чем, например, в Perl. Документы Java API для Pattern показывают различные поддерживаемые шаблоны. Более дружественное введение в регулярные выражения в Java: http://www.regular -expressions.info / java.html .

Некоторые очень быстрые поиски в Google показывают, что в Интернете есть много инструментов для проверки регулярных выражений Java на предмет ввода строк. Вот один .

Чтобы проверить интересующий вас тип ввода, должно работать следующее регулярное выражение:

^[A-Z0-9.]{,50}$

Разбитый, это говорит:

^: начать сопоставление с начала ввода; не разрешать пропуск первых символов

[]: соответствует одному из символов в этом диапазоне

A-Z: в пределах диапазона - означает принимать все значения между первым и последним символом включительно, поэтому в этом случае все символы от A до Z.

0-9: добавить к предыдущему диапазону все цифры

.: точки являются специальными в регулярных выражениях, но все специальные символы снова становятся простыми в классе символов ([])

{,50}: require (или 0) соответствует до 50 только что определенного класса символов.

$: совпадение должно доходить до конца ввода; не разрешать пропуск последнего символа (ов)

1 голос
/ 09 марта 2012

Этот веб-сайт действительно удобен для создания, тестирования и регулярных выражений

0 голосов
/ 09 марта 2012

В ответ на то, какие инструменты вы можете использовать, я предпочитаю Regex Coach

0 голосов
/ 09 марта 2012

Возвращает true для строк, содержащих только 50 символов, которые могут быть числами, заглавными буквами или точкой.

string.matches("[0-9A-Z\\.]{0,50}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...