Javascript 这些带反向引用的正则表达式有什么问题?
我正在尝试制作一个正则表达式,它将匹配两次幂的Javascript 这些带反向引用的正则表达式有什么问题?,javascript,regex,Javascript,Regex,我正在尝试制作一个正则表达式,它将匹配两次幂的x。我正在使用JavaScript。我试过这个: ^(x\1?)$ 但它不起作用。\1不是指外部的并列词吗,所以它应该匹配xx,因此也应该匹配xxxx,等等 我尝试了一个更简单的方法,我认为可以匹配x和xx: ^((x)|(\2{2}))$ 但这只匹配x 我做错了什么?你不能做“递归反向引用”。至少,这不是那么容易 我不确定这里是否需要递归正则表达式。也许您可以只计算字符串中的字符数,然后检查它是否等于二的幂 但如果您真的需要递归正则表达式(我几
x
。我正在使用JavaScript。我试过这个:
^(x\1?)$
但它不起作用。\1
不是指外部的并列词吗,所以它应该匹配xx
,因此也应该匹配xxxx
,等等
我尝试了一个更简单的方法,我认为可以匹配x和xx:
^((x)|(\2{2}))$
但这只匹配x
我做错了什么?你不能做“递归反向引用”。至少,这不是那么容易
我不确定这里是否需要递归正则表达式。也许您可以只计算字符串中的字符数,然后检查它是否等于二的幂
但如果您真的需要递归正则表达式(我几乎可以肯定,您不需要),
您可以检查以下问题:
^((x)|(\1{2})匹配)$
是否正常工作:-)我可以使用正则表达式计算字符数吗?另外,我的第二个更简单的正则表达式如何。你知道这有什么错吗?第二个正则表达式是错的,因为你在其中做了选择,并且在一个选择中有()-部分,在另一个选择中有反向引用。那是行不通的。如果它们匹配,你可以使用反向引用。我可以从那里引用反向引用吗?@Joe:当然可以。但只有与之匹配的