2016-04-05 6 views
1

正規表現を使用するのはかなり新しいですし、ちょうど2つの1と奇数の0を含むバイナリ文字列を受け入れる正規表現を作成する方法について固まっています。私は奇数ゼロの部分1 * 01 *(01 * 01 *)*のアイデアを持っていますが、私はちょうど2つの1の部分にそれを組み込む方法がわかりません。正規表現厳密に2つ1の

+0

この文字列の長さはどのくらいですか?これはルックアップテーブルとして実装するほうがよいでしょう。 16ビットの空間には、このようなバイナリ文字列が56個しかありません。 –

答えて

0

はおそらくはるかに効率的な方法があるが、一つの可能​​性は次のようになります。

  • 使用(00)*
  • 手で2つのものを追加ゼロの任意の偶数が含まれるように - >(00)*1(00)*1(00)*
  • と合計数が奇数であるようにORを使用して4つの追加の0のケースを処理します。正面、中部または背面のいずれかに0を1つ追加します。

最後の正規表現は次のようになります。

(0(00)*1(00)*1(00)*)|((00)*1(00)*01(00)*)|((00)*1(00)*1(00)*0)|((00)0*1(00)0*1(00)*0) 
+0

ありがとう!はい、私は0の偶数を使用し、それを奇妙にするために0を追加することについて考えていましたが、どこにもつながっていないようですが、3つのケースを経て完了したのを確かに確認しました。 –