javascript - 这些带有反向引用的正则表达式有什么问题?

标签 javascript regex

我正在尝试制作一个正则表达式来匹配多个 x,即 2 的幂。我正在使用 JavaScript。我试过这个:

^(x\1?)$

但它不起作用。难道 \1 不应该引用外部括号,所以它应该匹配 xx,因此也匹配 xxxx 等吗?

我尝试了一个我认为可以匹配 x 和 xx 的更简单的方法:

^((x)|(\2{2}))$

但这只匹配x

我做错了什么?

最佳答案

你不能做“递归反向引用”。至少,这不是那么容易。

我不确定您是否需要这里的递归正则表达式。也许您可以只计算字符串中的字符数并检查它是否等于 2 的幂?

但是如果你真的需要递归正则表达式(我几乎可以肯定,你不需要), 你可以检查这个问题:

和这个博客

关于javascript - 这些带有反向引用的正则表达式有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20886946/

相关文章:

javascript - 层次树中的递归

c# - 如何使用 ASP.NET 反序列化 JavaScript 数组

仅匹配 JavaScript 样式数字的 Javascript 正则表达式

java - 为什么会出现 java.lang.IllegalArgumentException?

JavaScript 内联函数到数组映射

javascript - 如何将字符串参数传递给 JavaScript 函数中的 Java 方法

javascript - 从 http 数据显示多个用户而不是单个用户

javascript - 用标签包围字符串中的所有电子邮件匹配项

用于验证电子邮件的 MySQL 正则表达式不起作用 - 大括号量词被忽略

regex - 如何将VI中的搜索选择复制到剪贴板并粘贴到同一文件中?