我正在尝试制作一个正则表达式来匹配多个 x
,即 2 的幂。我正在使用 JavaScript。我试过这个:
^(x\1?)$
但它不起作用。难道 \1
不应该引用外部括号,所以它应该匹配 xx
,因此也匹配 xxxx
等吗?
我尝试了一个我认为可以匹配 x 和 xx 的更简单的方法:
^((x)|(\2{2}))$
但这只匹配x
。
我做错了什么?
最佳答案
你不能做“递归反向引用”。至少,这不是那么容易。
我不确定您是否需要这里的递归正则表达式。也许您可以只计算字符串中的字符数并检查它是否等于 2 的幂?
但是如果你真的需要递归正则表达式(我几乎可以肯定,你不需要), 你可以检查这个问题:
和这个博客
关于javascript - 这些带有反向引用的正则表达式有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20886946/