如何创建正则表达式以接受不超过10位数?

时间:2009-06-23 14:22:30

标签: regex validation

如何创建正则表达式以接受不超过10位的数字?

感谢

10 个答案:

答案 0 :(得分:24)

既然你问过“怎么做”,我会尝试逐步解释。由于您未指定所使用的正则表达式,因此我将在PCREtwo POSIX regexp variants中提供示例。

对于像这样的简单情况,你应该考虑自动化的正则表达式,一次接受一个字符,并且无论何时它是有效的(接受字符)。在每个字符之后,您可以指定量词可能出现的次数,例如(在PCRE方言中)*(零次或多次),+(一次或多次)或{ n , m }(从 n m 次)。然后施工过程变得简单:

PRCE  | B.POSIX | E.POSIX   | Comments
------+---------+-----------+--------------------------------------------------
^     | ^       | ^         | Unless you are going to accept anything with 10
      |         |           | digits in it, you need to match start of data;
\d    | [0-9]   | [:digit:] | You need to match digits;
{1,10}| \{1,10\}| {1,10}    | You have to specify there is from 1 to 10 of them.
      |         |           | If you also wish to accept empty string — use 0;
$     | $       | $         | Then, data should end (unless see above).

因此,结果分别为^\d{1,10}$^[0-9]\{1,10}\$^[:digit:]{1,10}$

答案 1 :(得分:6)

^\d{1,9}$

这将匹配从1位到9位的任何内容。

由于您没有指定正在使用的正则表达式,因此可以使您获得所需的位置。如果没有,请告诉我们您正在使用哪种正则表达式技术。

答案 2 :(得分:5)

/\D\d{0,10}\D/(假设“小于”包括0)

/\D\d{1,10}\D/(如果您想要1到10位数字)

答案 3 :(得分:2)

Perl:

^\d{,9}$

perldoc perlretut是关于Perl中正则表达式的一个很好的教程。

答案 4 :(得分:2)

我认为这样可以解决问题:

  

^ \ d {1,10} $

答案 5 :(得分:1)

/ \ D \ d {,9} \ D / in Perl

答案 6 :(得分:0)

表示“小于10”并且至少有1个你想要的,假设它是唯一的值......

^\d{1,9}$

答案 7 :(得分:0)

这将连续找到至少一个且不超过9位的数字:

\d{1,9}

答案 8 :(得分:0)

答案 9 :(得分:0)

http://www.regexbuddy.com/

但是我建议在这里划分问题,只是检查输入后字符串的长度是否为< = 10个字符,你不需要正则表达式。