Привет, я нашел в Интернете, что это регулярное выражение принимает положительное число ^\d + $, и это не принимает ничего ^ Поэтому я не хочу сочетать это два регулярных выражения, но без успеха. Я пробую это (^\d + $) | (^ $), но это не сработало. Так что помогите мне с регулярным выражением, которое принимает положительное целое число и ничего спасибо много
Просто выполните:
^\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-9]*$
. Это позволяет номера и ничего.
Как насчет ^\d*$
? Это будет принимать последовательность цифр (то есть положительное целое число) сама по себе в строке без пробелов или пустой строки.