Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得2011999年的regex_Regex - Fatal编程技术网

如何获得2011999年的regex

如何获得2011999年的regex,regex,Regex,嗨! regex能支持2011999吗 所以我们“强制”前4位是2011年或2012年、2013年等,作为后面的一组数字?这意味着它将是2011+3位数 第一个数字必须始终为2011或2012等 我如何使用正则表达式得到它 这个怎么样 20(10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | 20)[0-9]{2,4}您可以使用交替: /(2011 | 2012 | 2013){3}/ 但这不是未来的证明。正则表达式不太支持将值约束到数值范围。试试这个 \b

嗨! regex能支持2011999吗 所以我们“强制”前4位是2011年或2012年、2013年等,作为后面的一组数字?这意味着它将是2011+3位数 第一个数字必须始终为2011或2012等

我如何使用正则表达式得到它

这个怎么样


20(10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | 20)[0-9]{2,4}

您可以使用交替:

/(2011 | 2012 | 2013){3}/

但这不是未来的证明。正则表达式不太支持将值约束到数值范围。

试试这个

\b201\d{4}\b
查看您的应用程序,这是学习和测试正则表达式的好地方

\b
是一个单词边界,这意味着在第一个数字之前不允许有数字和字母

这个正则表达式将找到一个以201开头,后跟4位数字的数字

如果你想限制更多的起始号码,你可以做如下的事情

\b201(?:1|2|3)\d{3}\b
或者使用字符类代替替换

\b201[123]\d{3}\b

这取决于您想要的值。对于这类问题,最好指定规则而不是示例,因为可能有许多不同的方法来解释示例

首先,如果希望前四位数字为201x,其中
x
为1到9(包括1到9),然后是三位数字,则可以使用如下内容:

^201[1-9][0-9]{3}$
(取决于您的正则表达式引擎的现代性

或者,如果您正在处理
YYYYDDD
之类的事情,其中
DDD
是一年中以零为基础的日期,并且您不希望在2011年之前有任何日期,那么您可能会遇到一个怪物,如:

^((201[1-9])|(20[2-9][0-9])|(2[1-9][0-9][0-9]))
    (([0-2][0-9][0-9])|(3[0-5][0-9])|(36[0-5]))$

(虽然直到2999年,即使在非闰年也允许366天),在这一点上,你可能只想使用(更可读的)代码而不是正则表达式:-(<)/P>


这就是你正在考虑的一系列可能性,问题是“必须始终是2011年或2012年等”,不过,如果你能再锁定一点规范,我们有望消除更奇怪的可能性。

一种非regexp的方式,这是未来的证明

var validFutureYears = 5;
the_value= parseInt(the_value, 10);
var vyear = new Date().getFullYear() * 1000;
var isValid = the_value >= vyear && the_value <= vyear + (validFutureYears * 1000);
var validfutureers=5;
_值=parseInt(_值,10);
var vyear=新日期().getFullYear()*1000;
var isValid=年值>=vyear&&U值“2011或2012等?”:允许哪些值?要了解正则表达式,请查看