2012-02-14 42 views
1

の正規表現*と表現の違いは何.**の意味がある - 。何度でも起こる任意の文字、および.*の意味起こる任意の文字です0回以上。どちらも基本的に同じ意味です。誰かが違いを説明できますか?は違い*正規表現でJava

+0

私はこれまでのことをあまり気づいていませんでしたが、今、私は以前の質問を見直して最も関連性のある回答を受け入れました – Gaurav

答えて

13

いいえ、*は正規表現で以前文字、グループまたは文字クラスの意味を変更し数量詞です。それ自体は無意味です。それは、正規表現の直前のものと組み合わせると意味を持ちます。

したがって、.*は、0回以上現れる任意の文字を意味し、a*は0回以上現れることを意味します。

1

正規表現では、*自体は何も意味しません。 は、その前の式をに変更します。 ワイルドカードと混同することがあります。*は正規表現で.*と同じ意味です。正規表現*では、それ自体で、または式の最初の文字としては不正です。

0

ab*deはそうでadeabdeabbdeabbbdeabbbbdeにマッチします。

ab.*deは、adeを除く上記すべてに一致します。

+0

最初のステートメントは間違っています、 'ab * de'は' abde'と 'abbbbbde' 'abcde'ではなく –

1

の意味は、「X回、0回以上」です(here参照)。 *は限定記号に過ぎません。

1

.は、任意の文字を意味します。 *は、前の文字(またはグループ)を0回以上意味します。したがって、.*は、0回以上の任意の文字を意味します。それはそれです