此Regex算法可用于什么?

时间:2019-03-27 05:03:10

标签: regex

谁能告诉我这是什么正则表达式算法?

^0[1-10]
{3}-[1-10]
{3}-[1-10]{3}$

谢谢!

3 个答案:

答案 0 :(得分:1)

@lawrencealan关于文字匹配是正确的,但是如果将正则表达式固定为

^0[1-9]{3}-[1-9]{3}-[1-9]{3}$

然后匹配

0XXX-XXX-XXX

其中X只能是1-9,而不是0。例如,这些都将匹配:

0748-283-991
0845-854-768
0478-982-749

但不是:

0840-324-876
0489-006-010
1324-987-345

答案 1 :(得分:1)

我们可以将此正则表达式视为三种可能性之一:

  • 照原样
  • 使其成一行,并带有空格
  • 使其成一行,没有空格

不用说,这三个都产生不同的匹配结果。我用regex101.com解释正则表达式匹配项。

模式[1-10]是(很可能是)错字。该问题可能表示“从1到10的数字”,而是表示“ 10-中的任何一个”

如果我将[1-10]替换为[0-9],则该表达式会更加有用。看一下这个:https://regex101.com/r/khD1LI/3/

这现在看起来像是捕获某种数字代码的表达式


您可以通过将[0-9]替换为\d(对于所有数字都是shorthand class)来进一步阐明含义

这是匹配过程的作用:https://regexper.com/#^0\d{3}-\d{3}-\d{3}$

enter image description here

答案 2 :(得分:0)

该正则表达式看起来格式不正确...所以在当前状态下可能什么也没有... 但是,如果您修复它,则:

^0[1-10]{3}-[1-10]{3}-[1-10]{3}$

将匹配以下行:

0XXX-XXX-XXX
0XXX-XXX-XXX
0XXX-XXX-XXX

其中X是10

因此,这些行的前两行而不是最后一行:

0111-101-000
0001-010-101
0333-100-111