簡體   English   中英

正則表達式的二進制數可被8或奇數除

[英]Regex for binary number divisible by 8 OR odd

“編寫一個正則表達式,描述所有的零字符串和一個表示二進制數字的字符串,這些二進制數字可以是奇數或可被8整除。數字可能沒有任何前導零。”

我給出的答案是(000|1)$ ,它被標記為錯誤。 我看不出原因。 請解釋! 提前致謝。

您忘記了兩個要求。

  1. 它只能包含1秒和0秒:

     ^[01]*(000|1)$ 
  2. 可能沒有前導0 s:

     ^(?!0)[01]*(000|1)$ 

    如果不允許先行,則將變得有些棘手:

     ^1[01]*(000|1)$|^1$ 

另一個補充,如果只允許使用“理論”正則表達式(交替,分組和重復)中可用的正則表達式構造,則它看起來像這樣(錨在這種情況下是隱式的):

1(0|1)*(000|1)|1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM