“编写一个正则表达式,描述所有零的字符串和一个代表二进制数字的字符串,这些二进制数字是奇数或8可被整除。数字可能没有任何前导零。”
我将答案标记为(000|1)$
,标记为错误。我看不出原因。请解释!提前谢谢。
答案 0 :(得分:3)
你忘记了两个要求。
它必须仅包含1
和0
s:
^[01]*(000|1)$
可能没有前导0
:
^(?!0)[01]*(000|1)$
如果不允许前瞻,则会变得有点棘手:
^1[01]*(000|1)$|^1$
另外一个补充,如果你只允许使用“理论”正则表达式(交替,组和重复)中可用的正则表达式结构,它将看起来像这样(在这种情况下锚点是隐含的):
1(0|1)*(000|1)|1