2017-02-13 4 views
-1

Σ= {0,1}を超える文字列の集合で構成される正規表現を作成します。 入力は1または0のみを含む文字列です。バイナリ文字列を検索する必要があります。次の条件の正規表現

言語の各文字列のいずれかであるように:

(A)は、5つの連続0の配列を有する、または

(B)は、連続の奇数の配列を有します。ある時点で連続する1の偶数のシーケンスが続く。

したがって00000、000000、11100000、11111、および10011は言語で、 ですが、110000はそうではありません。

+0

すでに試してみましたが、あなたはどの問題が発生したのは何? [宿題に関する質問](http://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions)のように見えます。 – yeputons

+0

なぜ「111」は受け入れられますか?いずれの条件とも一致しません。 – ClasG

+0

[regex for it](https://regex101.com/r/SqyERe/1)を書くと、私はそれを実現します** **はbの下に落ちます。 – ClasG

答えて

0

あなたは2つの正規表現を連結する必要が連続5 0

^1(?:11)*0*(?:11)*0*$

グループ彼らは一致します。

0{5}|^1(?:11)*0*(?:11)*0*$

説明:

^  : start of string 
    1  : a 1 
    (?: : start non capture group 
    11 : that contains two 1 
)* : repeated 0 or more times, after that you have an odd number of 1 
    0* : 0 or more 0 
    (?: : start non capture group 
    11 : that contains two 1 
)* : repeated 0 or more times, you then have an even number of 1 
    0* : 0 or more 0 
$  : end of string 
+0

ありがとう@toto、それは働いた。 –

+0

@MoidShaikh:喜んで助けてくれることを歓迎します。回答を受け入れられたとしてマークしてください。http://stackoverflow.com/help/someone-answers – Toto

0
^[01]*0{5,}[01]*|[01]*11$ 

(a)は、それが一致する必要がありますが、(b)は、私は非常に明確ではありませんよ、それは11で終わりを意味するのか?

0{5}

+0

私はそれを持っています。 https://regex101.com/r/SqyERe/1ヘルプありがとう@Kerwin –