Ste*_*han 22

有时画好价值1000字......

以下是您问题中的三个命题以及正则表达式的理解方式:

[1-9] | 10

正则表达图像

[1-10]

正则表达图像

[1-(10)]

Invalid regexp !!
Run Code Online (Sandbox Code Playgroud)

此正则表达式无效,因为范围打开(1-)带有数字但未用另一个数字(以...结尾()关闭.

范围通常用两边的数字或两边的字母绑定.

  • 我知道这已经有4年了,但正在纠正一些信息:`10 | [1-9]`有更高的可能性,一些版本的正则表达式的顺序评估OR语句的顺序,并将匹配第一个正确的结果,所以值'10 `可能只捕获'10'的`1`而不是整数. (2认同)

Joe*_*oey 19

这是因为正则表达式使用字符,而不是数字.[1-9]相当于(?:1|2|3|4|5|6|7|8|9)[1-10]将是(?:1|0)(因为它的范围1-1和数字0).

简单地说,字符类中的范围总是指连续的字符范围,尽管它们看起来如何.即使它们的数字并不意味着存在任何数值范围.


Jos*_*ira 8

[1-9]|10
Run Code Online (Sandbox Code Playgroud)

在这:

  • [1-9]接受1到9之间的任何字符 ;
  • | 执行"或"操作;
  • 10 从字面上接受10.

[1-10]
Run Code Online (Sandbox Code Playgroud)

这接受:

  • 1和1之间的任何单个字符,
  • 0.