在 Javascript 中使用正则表达式的二进制计算



我很难弄清楚这些问题。 我想在JS中使用正则表达式来做到这一点。

1.所有奇数长度的二进制字符串,包含交替的0和1。

2.所有超过 0 和 1 的二进制字符串,表示解释为二进制数时大于 5 的数字。

3.所有超过 0 和 1 的二进制字符串,表示在解释为二进制数时可被 4 整除的数字。

4.所有长度小于或等于 5 的二进制字符串,仅包含 0 和 1,其中 0 的数量等于 1 的数量。

任何帮助都是巨大的。

我认为正则表达式不是解决您问题的最佳解决方案,但它们是:

  1. b(1(01)*|0(10)*)b尝试正则表达式
  2. b([01]*11[01]|0*1+[01]*[01]{3})b尝试正则表达式
  3. b[01]*00b尝试正则表达式
  4. b((01|10){1,2}|0011|1100)b尝试正则表达式

我将其分为 4 个正则表达式以更容易理解:

1.

^(?:(?:10)+1|(?:01)+0)+$

这匹配一个或多个 '01' 或 '10',后跟相反的字符,重复一次或多次。

阿拉伯数字。

[01]{4,}$

这仅检查数字是否以 4 个二进制数字结尾。

3.

[01]*0{2,}$

这可确保数字以 2 个零结尾。

4.

^(01|10|0011|0101|0110|1001|1010|1100)$

这简直OR了不同的可能性。由于必须有相等的零和"1",因此数字中只能有 2 或 4 位数字。

如果您需要在一个正则表达式中将其全部OR,则可以将它们全部在一起。

最新更新