2017-05-20 17 views
-2

私はこれに多くの時間を費やしました。 私が何をしたいことは、このようなものだと思いますアルファベットの{a、b、c}の部分文字列abaとbbbを含まないすべての文字列のセット

+0

アルファベットの{a、b、c} *の意味は何ですか? – RomanPerekhrest

+0

よりアルファベットでは、{}内のすべての文字は使用できるすべての文字です。つまり、a、b、cからのみ単語を作成できます。 –

+0

あなたが話している文字列のリストを投稿してみませんか?あなたはあなたがこの時間に多くの時間を費やして以来、試したことを示すことさえできました。 – sln

答えて

0

{C、A、B}アルファベットの上に部分文字列ABAとBBBが含まれていないすべての文字列の正規表現です:

^(?:(?!aba|bbb)[abc])*$ 

パターン(?!aba|bbb)[abc]は、abaまたはbbbの開始ではないabまたはcと一致します。したがって、*を使用して0回以上繰り返すことができます。

0

私が思い付く:

^(?!(?:aba|bbb)$)[abc]$ 

意味:
"ABA | BBB" は、正確に
両方の文字列のいずれかに一致 "(?:...)" グループ化(非キャプチャ)
"(?:...)$"は、行末に一致します
"(?!...)"負のlookahead:文字列に続くパターンが含まれていない場合、 "[abc] $"を使用してa、b、c

関連する問題