正規表現について間違っていることを理解するのはかなり困難です。私はかなり複雑な正規表現を持っていますが、少しのものを簡単にするために、これは自分自身を説明するために十分である:正規表現または演算子は+限定子で動作しますが、*
(a*) | (b*)
ない括弧が必要な場合は必ずましたか?しかし、この正規表現は、b *(a、aa、...、b、bb、...)とa *は一致しません。私が星の代わりに+を使うと、それは明らかに空の文字列と一致しないことを除いて動作します。私はregex101で何のフラグもなしでこれをテストしました。
なぜ、or演算子を空の文字列に一致する部分と一緒に使用できないのですか、またはここで間違っていますか?
しかし、最初の選択肢は* a以外の "a"または "a"、 "wins"のシーケンスの前に* everywhere *とマッチし、2番目と残りはテストされていません。あなたは何をする必要がありますか? –
'a *'は、文字列の先頭の空の部分文字列と一致します。なぜそれは 'b *'と考えられるのだろうか? – user2357112
いくつかの正規表現のフレーバーでは、最も長い試合が勝利します。他の試合では、最初の試合が勝利し、別の選択肢を見つける必要があります。どのフレーバーを使用していますか、別のフレーバーも使えますか? – hvd