регулярные выражения, которые принимают положительное целое число и ничего

2

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

  • 1
    Для какого языка вы пишете регулярное выражение?
  • 0
    Java: Pattern.compile (регулярное выражение)
Теги:

3 ответа

11
Лучший ответ

Просто выполните:

^\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. SO, даже если matches(...) возвращен true, parseInt(...) или parseLong(...) может вызывать исключение!

  • 0
    да, это работает, спасибо
  • 0
    @ Худи, пожалуйста.
Показать ещё 1 комментарий
2

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

1

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню