我正在写一个正则表达式来验证从2020年开始的年份.
以下是我写的正则表达式,
^(20-99)(20-99)$
Run Code Online (Sandbox Code Playgroud)
它似乎不起作用.任何人都可以指出哪里弄错了?
正则表达式不会采用这样的范围.你想要做的事情如下:
if( year >= 2020 )
presto
Run Code Online (Sandbox Code Playgroud)
我是轻率的,因为你正在尝试使用正则表达式,你只需要使用直接的比较.如果你有一个字符串,首先将字符串转换为整数(如果你甚至需要用Python做).否则,你将会有一些难以维护的非常难看的正则表达式.
编辑:如果你在使用正则表达式(或三个)真正热衷,你的问题可以分为三个正则表达式:^20[2-9]\d$,^2[1-9]\d\d$,^[3-9]\d{3}$为四字年.你可以将这些结合起来^(20[2-9]\d|2[1-9]\d\d|[3-9]\d{3})$.
但请注意,正则表达式是a)丑陋如同地狱,并且b)只接受多达9999年.您可以通过明智地使用它来缓解这一点+,所以类似于:
^(20[2-9]\d+|2[1-9]\d{2,}|[3-9]\d{3,})$
Run Code Online (Sandbox Code Playgroud)
......可以工作
但我希望你会发现只是year >= 2020做得更好.
编辑2:地狱,这个正则表达式错误多年大于9999.你可能想要使用:
^(20[2-9]\d|2[1-9]\d{2}|[3-9]\d{3}|[1-9]\d{4,})$
Run Code Online (Sandbox Code Playgroud)
如果你进入像这样的一年,这仍然不起作用03852.
| 归档时间: |
|
| 查看次数: |
1554 次 |
| 最近记录: |