2017-10-08 9 views
0

egrepやgrepで正規表現として*を使用しているときに、何も意味がないことを説明できますか?正規表現でゼロが発生する(UNIX)

私のような表現があるとします。「*」を

はそれは私がまたはAAAAA .....またはボブで始まるか、で開始する必要がないパターンを持っていることを意味していますか?

+1

'a *'は、 'a *'がゼロ文字、つまり空の文字列にマッチし、すべての文字列が空の文字列で始まるため、何でもマッチすることを意味します。 – Psidom

+0

* $をお持ちの場合はどうなりますか?それは少なくとも1 "a"で終わらなければならないということですか? – Lucifellow

+0

すべての文字列が空の文字列で終わっているので、それはまだ何にもマッチしません。一般に、長さゼロのパターンにマッチする正規表現は作成しないでください。それは意味があるために少なくとも 'a + $'でなければなりません。 – Psidom

答えて

0

あなたはクリーネスターが0回以上の繰り返しに一致するためa*は、意志^ba*o^boa*として、bob一致し、正しいです。

bazaarとします。これにはza*zaa*、またはzaaa*rを使用することができます。 1つ以上の出現を主張するには、za+rを使用します。複数の場合はzaa+rを使用してください。正確に2回発生するようにするには、za{2}rを使用します。