Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
“编写一个正则表达式来描述所有零字符串和表示二进制数的字符串,这些二进制数可以是奇数或可被 8 整除。这些数字可能没有任何前导零。”
我给出了(000|1)$标记为错误的答案。我看不出原因。请解释!提前致谢。
(000|1)$
您忘记了其中两个要求。
它必须只包含1s 和0s:
1
0
^[01]*(000|1)$
可能没有前导0s:
^(?!0)[01]*(000|1)$
如果不允许前瞻,它会变得有点棘手:
^1[01]*(000|1)$|^1$
另一个补充,如果您只允许使用“理论”正则表达式(交替、组和重复)中可用的正则表达式结构,它看起来像这样(在这种情况下,锚是隐含的):
1(0|1)*(000|1)|1