регулярные выражения, которые принимают положительное целое число и ничего - PullRequest
2 голосов
/ 06 июля 2011

Привет я обнаружил в Интернете, что это регулярное выражение принимает положительное число ^ \ d + $, и это ничего не принимает ^ $ Нет, я хочу объединить эти два регулярных выражения, но безуспешно. Я пытаюсь это (^ \ d + $) | (^ $), но это не сработало. Так помогите мне с регулярным выражением, которое принимает положительное целое и ничего THX много

Ответы [ 3 ]

11 голосов
/ 06 июля 2011

Просто сделайте:

^\d*$

* означает: «ноль или более раз».

Поскольку вы задавали большинство вопросов с тегом Java, я предполагаю, что вы ищете решение Java. Обратите внимание, что внутри строкового литерала необходимо экранировать \!

Демо:

class Test {
  public static void main(String[] args) {
    String[] tests = {"-100", "", "2334", "0"};
    for(String t : tests) {
      System.out.println(t + " -> " + t.matches("\\d*"));
    }
  }
}

производит:

-100 -> false
 -> true
2334 -> true
0 -> true

Обратите внимание, что matches(...) уже проверяет всю входную строку, поэтому нет необходимости "привязывать" ее с помощью ^ и $.

Остерегайтесь того, что он также вернет true для чисел, которые превышают Integer.MAX_VALUE и Long.MAX_VALUE. ТАК, даже если matches(...) вернул true, parseInt(...) или parseLong(...) может выдать исключение!

2 голосов
/ 06 июля 2011

Попробуйте ^[0-9]*$.Этот позволяет цифры и ничего.

1 голос
/ 06 июля 2011

Как насчет ^\d*$?Это будет принимать последовательность цифр (т.е. положительное целое число) сама по себе в строке без пробелов или пустой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...