Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Javascript 带backref的正则表达式范围_Javascript_Regex - Fatal编程技术网

Javascript 带backref的正则表达式范围

Javascript 带backref的正则表达式范围,javascript,regex,Javascript,Regex,几天前,作为regex高尔夫游戏的一部分,我的任务是构造一个regex,它匹配严格按字母顺序排列的字符串(允许重复)。例如,它应该匹配 bet fin ghost accjkkpppz 但不应该匹配 aghast polonium rhesus qispeha 分别在“a”、“o”、“h”和“i”上失败 我第一次使用了^a*b*c*d*e*f*g*h*I*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*$,但使用backref可以得到一个更短的解决方案: ^((.)(?=

几天前,作为regex高尔夫游戏的一部分,我的任务是构造一个regex,它匹配严格按字母顺序排列的字符串(允许重复)。例如,它应该匹配

bet
fin
ghost
accjkkpppz
但不应该匹配

aghast
polonium
rhesus
qispeha
分别在“a”、“o”、“h”和“i”上失败

我第一次使用了
^a*b*c*d*e*f*g*h*I*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*$
,但使用backref可以得到一个更短的解决方案:

^((.)(?=[\1-z]|$))+$
这个正则表达式应该找到一个字符,向前看,看到一个字符>=它或工作的结尾,然后重复

<>但是,我把中间的ReRef和范围挂起来了,这似乎与我经历过的任何测试都不起作用:

[\1-z]


有没有办法在某个范围内使用backreference?

JavaScript正则表达式实现应该给出的官方错误是:

JavaScript不支持
\1

对于
-

所以基本上,它认为你是在试图逃避数字
1
,然后它认为连字符也是文字



由于需求的特殊性,我认为您的第一个正则表达式必须满足。

不,您不能在字符类中使用反向引用。此外,将正则表达式与JS结合使用并不是高尔夫运动的“最佳”选择。与PCRE、perl或.NET相比,JS中的正则表达式的风格非常有限……如果我错了,请纠正我,但是
better
不应该匹配,因为在
t
之后有
e
r
。啊,是的。真尴尬。我将为您提供严格的示例,您可以使用。当然,它不会适用于所有情况,但适用于特定的情况,如果高尔夫有特定的测试案例要通过的话。事实上,这些只是我提出的与一般情况相匹配的例子。