如何创建正则表达式以接受不超过10位的数字?
感谢
答案 0 :(得分:24)
既然你问过“怎么做”,我会尝试逐步解释。由于您未指定所使用的正则表达式,因此我将在PCRE和two 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)
答案 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)
但是我建议在这里划分问题,只是检查输入后字符串的长度是否为< = 10个字符,你不需要正则表达式。