Ple*_*and 31
不要忘记整数可能是负数:
^\s*-?[0-9]{1,10}\s*$
Run Code Online (Sandbox Code Playgroud)
这是每个部分的含义:
^
:匹配必须从字符串的开头开始\s
:任何空白字符
*
:发生零次或多次-
:连字符 - 减号字符,用于表示负整数
?
:可能会或可能不会发生[0-9]
:ASCII码(或Unicode代码点)介于"0"和"9"之间的任何字符
{1,10}
:发生至少一次,但不超过十次\s
:任何空白字符
*
:发生零次或多次$
:匹配必须在字符串结尾处结束这会忽略前导和尾随空格,如果您认为逗号可以接受,或者您需要将减号计为十个允许字符之一,则会更复杂.
mik*_*iku 20
[^0-9][+-]?[0-9]{1,10}[^0-9]
Run Code Online (Sandbox Code Playgroud)
单词:可选+或 - 后跟数字,重复一次,最多十次.请注意,大多数库都有一个数字的快捷方式:\d
因此上面也可以写成:\d{1,10}
.
1 到 10:
[0-9]{1,10}
Run Code Online (Sandbox Code Playgroud)
在.NET 中(不仅如此,请参阅下面的评论)也有效(有规定):
\d{1,10}
Run Code Online (Sandbox Code Playgroud)
C#:
var regex = new Regex("^[0-9]{1,10}$", RegexOptions.Compiled);
regex.IsMatch("1"); // true
regex.IsMatch("12"); // true
..
regex.IsMatch("1234567890"); // true
regex.IsMatch(""); // false
regex.IsMatch(" "); // true
regex.IsMatch("a"); // false
Run Code Online (Sandbox Code Playgroud)
PS 这是一个非常有用的沙箱。