gpt4 book ai didi

regex - 正则表达式为3的二进制倍数

转载 作者:行者123 更新时间:2023-12-03 21:01:42 32 4
gpt4 key购买 nike

我想知道如何构造一个正则表达式,以知道基数2(二进制)中的数字是否为3的倍数。是错误的(因为它不接受偶数)。我试过了:(((1 +)(0 *)(1 +))(0),但不适用于某些值。希望您能够帮助我。

更新:
好的,谢谢大家的帮助,现在我知道如何绘制NFA了,在这里我留下了图表和常规表达式:

在图中,状态是以10为底的mod 3中的数字。

例如:要进入状态1,您必须有1,然后可以加1或0,如果要添加1,则将有11(以10为底的3),并且此数字mod 3为0,则绘制圆弧到状态0。



((0*)((11)*)((1((00) *)1) *)(101 *(0|((00) *1 *) *0)1) *(1(000)+1*01)*) *

和其他正则表达式的作品,但这更短。

非常感谢 :)

最佳答案

如果我可以为this code golf question插入解决方案!这是一段JavaScript,可生成正则表达式(可能效率低下,但能完成工作),以实现每个基数的可除性。

这是在基数2中将其除以3的结果

/^((((0+)?1)(10*1)*0)(0(10*1)*0|1)*(0(10*1)*(1(0+)?))|(((0+)?1)(10*1)*(1(0+)?)|(0(0+)?)))$/

编辑:与Asmor相比,可能效率很低:)

编辑2:此外,这是this question的重复项。

关于regex - 正则表达式为3的二进制倍数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7974655/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com