为什么正则表达式匹配1到10之间的数字通常写如下?
[1-9]|10
Run Code Online (Sandbox Code Playgroud)
代替:
[1-10]
Run Code Online (Sandbox Code Playgroud)
或这个:
[1-(10)]
Run Code Online (Sandbox Code Playgroud)
Ste*_*han 22
有时画好价值1000字......
以下是您问题中的三个命题以及正则表达式的理解方式:


Invalid regexp !!
Run Code Online (Sandbox Code Playgroud)
此正则表达式无效,因为范围打开(1-)带有数字但未用另一个数字(以...结尾()关闭.
范围通常用两边的数字或两边的字母绑定.
Joe*_*oey 19
这是因为正则表达式使用字符,而不是数字.[1-9]相当于(?:1|2|3|4|5|6|7|8|9)而[1-10]将是(?:1|0)(因为它的范围1-1和数字0).
简单地说,字符类中的范围总是指连续的字符范围,尽管它们看起来如何.即使它们的数字并不意味着存在任何数值范围.
[1-9]|10
Run Code Online (Sandbox Code Playgroud)
在这:
[1-9]接受1到9之间的任何字符 ;| 执行"或"操作;10 从字面上接受10.[1-10]
Run Code Online (Sandbox Code Playgroud)
这接受:
0.